From 003231aaf25facf7437caa32f3e8bc2a2e9cbe7d Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Fri, 11 Mar 2022 12:02:40 +0700
Subject: [PATCH 001/221] [Keyboard] Add Mechlovin Infinity87.5 PCB (#15163)
* add infinity87.5
* Update readme.md
* Update keyboards/mechlovin/infinity875/config.h
* Update keyboards/mechlovin/infinity875/info.json
* Update keyboards/mechlovin/infinity875/rules.mk
* Update keyboards/mechlovin/infinity875/rules.mk
* Update keyboards/mechlovin/infinity875/config.h
* Enable RGB matrix effect
* update keymap default
* undef RGB matrix effect
* Update keyboards/mechlovin/infinity875/rules.mk
* Update keyboards/mechlovin/infinity875/rules.mk
* Update keyboards/mechlovin/infinity875/rules.mk
* Update keyboards/mechlovin/infinity875/readme.md
* Update keyboards/mechlovin/infinity875/infinity875.h
* Update keyboards/mechlovin/infinity875/infinity875.h
* Update keyboards/mechlovin/infinity875/info.json
* Update keyboards/mechlovin/infinity875/infinity875.h
* Update keyboards/mechlovin/infinity875/infinity875.h
* Update keyboards/mechlovin/infinity875/info.json
* Update keyboards/mechlovin/infinity875/info.json
* Update keyboards/mechlovin/infinity875/info.json
---
keyboards/mechlovin/infinity875/config.h | 64 ++
keyboards/mechlovin/infinity875/infinity875.c | 45 ++
keyboards/mechlovin/infinity875/infinity875.h | 99 +++
keyboards/mechlovin/infinity875/info.json | 23 +
.../infinity875/keymaps/default/keymap.c | 35 +
.../infinity875/keymaps/default/readme.md | 1 +
.../keymaps/default/rgb_matrix_user.inc | 764 ++++++++++++++++++
.../infinity875/keymaps/default/rules.mk | 1 +
.../infinity875/keymaps/via/config.h | 24 +
.../infinity875/keymaps/via/keymap.c | 51 ++
.../infinity875/keymaps/via/readme.md | 1 +
.../keymaps/via/rgb_matrix_user.inc | 764 ++++++++++++++++++
.../infinity875/keymaps/via/rules.mk | 3 +
keyboards/mechlovin/infinity875/matrix.c | 388 +++++++++
keyboards/mechlovin/infinity875/readme.md | 24 +
keyboards/mechlovin/infinity875/rules.mk | 23 +
16 files changed, 2310 insertions(+)
create mode 100644 keyboards/mechlovin/infinity875/config.h
create mode 100644 keyboards/mechlovin/infinity875/infinity875.c
create mode 100644 keyboards/mechlovin/infinity875/infinity875.h
create mode 100644 keyboards/mechlovin/infinity875/info.json
create mode 100644 keyboards/mechlovin/infinity875/keymaps/default/keymap.c
create mode 100644 keyboards/mechlovin/infinity875/keymaps/default/readme.md
create mode 100644 keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc
create mode 100644 keyboards/mechlovin/infinity875/keymaps/default/rules.mk
create mode 100644 keyboards/mechlovin/infinity875/keymaps/via/config.h
create mode 100644 keyboards/mechlovin/infinity875/keymaps/via/keymap.c
create mode 100644 keyboards/mechlovin/infinity875/keymaps/via/readme.md
create mode 100644 keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc
create mode 100644 keyboards/mechlovin/infinity875/keymaps/via/rules.mk
create mode 100644 keyboards/mechlovin/infinity875/matrix.c
create mode 100644 keyboards/mechlovin/infinity875/readme.md
create mode 100644 keyboards/mechlovin/infinity875/rules.mk
diff --git a/keyboards/mechlovin/infinity875/config.h b/keyboards/mechlovin/infinity875/config.h
new file mode 100644
index 000000000000..6b6a8147f646
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/config.h
@@ -0,0 +1,64 @@
+/*
+Copyright 2021 Mechlovin' Studio
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4D4C // ML
+#define PRODUCT_ID 0x0875
+#define DEVICE_VER 0x0001
+#define PRODUCT Infinity87.5
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D5, D2, D4, D3, D0, D1 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+#define LED_CAPS_LOCK_PIN D6
+#define LED_SCROLL_LOCK_PIN B4
+#define LED_PIN_ON_STATE 1
+
+#ifdef RGB_MATRIX_ENABLE
+#define RGB_DI_PIN E2
+#define DRIVER_LED_TOTAL 42
+#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 220 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
+#endif
+
+
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mechlovin/infinity875/infinity875.c b/keyboards/mechlovin/infinity875/infinity875.c
new file mode 100644
index 000000000000..43606b6c9294
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/infinity875.c
@@ -0,0 +1,45 @@
+/* Copyright 2021 Mechlovin' Studio
+ *
+ * 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 .
+ */
+
+#include "infinity875.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}
+}, {
+ //LED Index to Physical Positon
+ {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {67,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {182,0}, {196,0}, {210,0}, {224,0},
+ {224,13}, {196,13}, {182,13}, {154,13}, {112,13}, {84,13}, {56,13}, {28,13}, {0,13},
+ {0,25}, {0,38},
+ {0,51}, {0,64},
+ {28,64}, {56,64},
+ {84,64}, {112,64}, {154,64}, {182,64}, {196,64}, {224,64}, {224,51}, {224,38}, {224,25},
+//{244,64}, {196,64}, {182,64}, {154,64}, {112,64}, {84,64}, {56,64}, {28,64}, {0,64},
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1,
+ 1, 1,
+ 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+#endif
+
diff --git a/keyboards/mechlovin/infinity875/infinity875.h b/keyboards/mechlovin/infinity875/infinity875.h
new file mode 100644
index 000000000000..2febe0824cd5
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/infinity875.h
@@ -0,0 +1,99 @@
+/* Copyright 2021 Mechlovin' Studio
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
+
+#define LAYOUT_tkl_f13_ansi_split_bs_rshift( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
+
+#define LAYOUT_tkl_f13_iso_split_bs_rshift( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
+
+#define LAYOUT_tkl_ansi_split_bs_rshift( \
+ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3C, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
+
+#define LAYOUT_tkl_iso_split_bs_rshift( \
+ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
diff --git a/keyboards/mechlovin/infinity875/info.json b/keyboards/mechlovin/infinity875/info.json
new file mode 100644
index 000000000000..e24c0d1cc27f
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/info.json
@@ -0,0 +1,23 @@
+{
+ "keyboard_name": "Infinity87.5",
+ "url": "",
+ "maintainer": "Mechlovin' Studio",
+ "layouts": {
+ "LAYOUT_tkl_ansi_split_bs_rshift": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"0,2", "x":3, "y":0}, {"label":"0,3", "x":4, "y":0}, {"label":"0,4", "x":5, "y":0}, {"label":"0,5", "x":6.5, "y":0}, {"label":"0,6", "x":7.5, "y":0}, {"label":"0,7", "x":8.5, "y":0}, {"label":"0,8", "x":9.5, "y":0}, {"label":"0,9", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,11", "x":13, "y":0}, {"label":"0,12", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25}, {"label":"2,13", "x":14, "y":1.25}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,12", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,13", "x":12.75, "y":3.25, "w":2.25}, {"label":"4,0", "x":0, "y":4.25, "w":2.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25}, {"label":"4,13", "x":13.25, "y":4.25, "w":1.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,10", "x":10, "y":5.25, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.25, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.75, "y":5.25, "w":1.25}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}]
+ },
+ "LAYOUT_tkl_iso_split_bs_rshift": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"0,2", "x":3, "y":0}, {"label":"0,3", "x":4, "y":0}, {"label":"0,4", "x":5, "y":0}, {"label":"0,5", "x":6.5, "y":0}, {"label":"0,6", "x":7.5, "y":0}, {"label":"0,7", "x":8.5, "y":0}, {"label":"0,8", "x":9.5, "y":0}, {"label":"0,9", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,11", "x":13, "y":0}, {"label":"0,12", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25}, {"label":"2,13", "x":14, "y":1.25}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,13", "x":13.75, "y":2.25, "w":1.25, "h":2}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,12", "x":12.75, "y":3.25}, {"label":"4,0", "x":0, "y":4.25, "w":1.25}, {"label":"4,1", "x":1.25, "y":4.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25}, {"label":"4,13", "x":13.25, "y":4.25, "w":1.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,10", "x":10, "y":5.25, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.25, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.75, "y":5.25, "w":1.25}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}]
+ },
+ "LAYOUT_tkl_f13_ansi_split_bs_rshift": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.25, "y":0}, {"label":"0,2", "x":2.25, "y":0}, {"label":"0,3", "x":3.25, "y":0}, {"label":"0,4", "x":4.25, "y":0}, {"label":"0,5", "x":5.5, "y":0}, {"label":"0,6", "x":6.5, "y":0}, {"label":"0,7", "x":7.5, "y":0}, {"label":"0,8", "x":8.5, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25}, {"label":"2,13", "x":14, "y":1.25}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,12", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,13", "x":12.75, "y":3.25, "w":2.25}, {"label":"4,0", "x":0, "y":4.25, "w":2.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25}, {"label":"4,13", "x":13.25, "y":4.25, "w":1.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,10", "x":10, "y":5.25, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.25, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.75, "y":5.25, "w":1.25}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}]
+ },
+ "LAYOUT_tkl_f13_iso_split_bs_rshift": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.25, "y":0}, {"label":"0,2", "x":2.25, "y":0}, {"label":"0,3", "x":3.25, "y":0}, {"label":"0,4", "x":4.25, "y":0}, {"label":"0,5", "x":5.5, "y":0}, {"label":"0,6", "x":6.5, "y":0}, {"label":"0,7", "x":7.5, "y":0}, {"label":"0,8", "x":8.5, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25}, {"label":"2,13", "x":14, "y":1.25}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,13", "x":13.75, "y":2.25, "w":1.25, "h":2}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,12", "x":12.75, "y":3.25}, {"label":"4,0", "x":0, "y":4.25, "w":1.25}, {"label":"4,1", "x":1.25, "y":4.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25}, {"label":"4,13", "x":13.25, "y":4.25, "w":1.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,10", "x":10, "y":5.25, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.25, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.75, "y":5.25, "w":1.25}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}]
+ },
+ "LAYOUT_all": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.25, "y":0}, {"label":"0,2", "x":2.25, "y":0}, {"label":"0,3", "x":3.25, "y":0}, {"label":"0,4", "x":4.25, "y":0}, {"label":"0,5", "x":5.5, "y":0}, {"label":"0,6", "x":6.5, "y":0}, {"label":"0,7", "x":7.5, "y":0}, {"label":"0,8", "x":8.5, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25}, {"label":"2,13", "x":14, "y":1.25}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,12", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,13", "x":12.75, "y":3.25, "w":2.25}, {"label":"4,0", "x":0, "y":4.25, "w":1.25}, {"label":"4,1", "x":1.25, "y":4.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25}, {"label":"4,13", "x":13.25, "y":4.25, "w":1.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,10", "x":10, "y":5.25, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.25, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.75, "y":5.25, "w":1.25}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}]
+ }
+ }
+ ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+}
diff --git a/keyboards/mechlovin/infinity875/keymaps/default/keymap.c b/keyboards/mechlovin/infinity875/keymaps/default/keymap.c
new file mode 100644
index 000000000000..93073a1722f0
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2021 Mechlovin' Studio
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI,
+ KC_TRNS, KC_TRNS, KC_TRNS, 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_SAD, RGB_HUD,
+ 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_TOG,
+ KC_TRNS, 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_TRNS, RGB_VAI,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD
+ )
+};
diff --git a/keyboards/mechlovin/infinity875/keymaps/default/readme.md b/keyboards/mechlovin/infinity875/keymaps/default/readme.md
new file mode 100644
index 000000000000..877e1a6862b7
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for infinity875
diff --git a/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc b/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc
new file mode 100644
index 000000000000..cee6a3f0389d
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc
@@ -0,0 +1,764 @@
+/*
+Copyright 2020 Evy Dekkers
+
+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 .
+*/
+
+RGB_MATRIX_EFFECT(solid_esc)
+RGB_MATRIX_EFFECT(solid_f13)
+RGB_MATRIX_EFFECT(solid_clus)
+RGB_MATRIX_EFFECT(breathing_all)
+RGB_MATRIX_EFFECT(breathing_esc)
+RGB_MATRIX_EFFECT(breathing_f13)
+RGB_MATRIX_EFFECT(breathing_clus)
+RGB_MATRIX_EFFECT(band_val_all)
+RGB_MATRIX_EFFECT(band_val_esc)
+RGB_MATRIX_EFFECT(band_val_f13)
+RGB_MATRIX_EFFECT(band_val_clus)
+RGB_MATRIX_EFFECT(cycle_up_down_all)
+RGB_MATRIX_EFFECT(cycle_up_down_esc)
+RGB_MATRIX_EFFECT(cycle_up_down_f13)
+RGB_MATRIX_EFFECT(cycle_up_down_clus)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_all)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_esc)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_f13)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_clus)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_all)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_esc)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_f13)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_clus)
+RGB_MATRIX_EFFECT(cycle_pimwheel_all)
+RGB_MATRIX_EFFECT(cycle_pimwheel_esc)
+RGB_MATRIX_EFFECT(cycle_pimwheel_f13)
+RGB_MATRIX_EFFECT(cycle_pimwheel_clus)
+RGB_MATRIX_EFFECT(rainbow_beacon_all)
+RGB_MATRIX_EFFECT(rainbow_beacon_esc)
+RGB_MATRIX_EFFECT(rainbow_beacon_f13)
+RGB_MATRIX_EFFECT(rainbow_beacon_clus)
+RGB_MATRIX_EFFECT(raindrops_all)
+RGB_MATRIX_EFFECT(raindrops_esc)
+RGB_MATRIX_EFFECT(raindrops_f13)
+RGB_MATRIX_EFFECT(raindrops_clus)
+
+#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+bool effect_runner_all(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_esc(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_f13(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_clus(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_all(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_esc(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_f13(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_clus(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_all(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_esc(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_f13(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+static void raindrops_set_color_all(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+}
+
+static void raindrops_set_color_esc(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+}
+
+static void raindrops_set_color_f13(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+}
+
+static void raindrops_set_color_clus(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+}
+
+static HSV BAND_VAL_CUSTOM(HSV hsv, uint8_t i, uint8_t time) {
+ int16_t v = hsv.v - abs(scale8(g_led_config.point[i].x, 228) + 28 - time) * 8;
+ hsv.v = scale8(v < 0 ? 0 : v, hsv.v);
+ return hsv;
+}
+
+static HSV CYCLE_UP_DOWN_CUSTOM(HSV hsv, uint8_t i, uint8_t time) {
+ hsv.h = g_led_config.point[i].y - time;
+ return hsv;
+}
+
+static HSV CYCLE_OUT_IN_DUAL_CUSTOM(HSV hsv, int16_t dx, int16_t dy, uint8_t time) {
+ dx = (k_rgb_matrix_center.x / 2) - abs8(dx);
+ uint8_t dist = sqrt16(dx * dx + dy * dy);
+ hsv.h = 3 * dist + time;
+ return hsv;
+}
+
+static HSV RAINBOW_MOVING_CHEVRON_CUSTOM(HSV hsv, uint8_t i, uint8_t time) {
+ hsv.h += abs8(g_led_config.point[i].y - k_rgb_matrix_center.y) + (g_led_config.point[i].x - time);
+ return hsv;
+}
+
+static HSV CYCLE_PINWHEEL_CUSTOM(HSV hsv, int16_t dx, int16_t dy, uint8_t time) {
+ hsv.h = atan2_8(dy, dx) + time;
+ return hsv;
+}
+
+static HSV RAINBOW_BEACON_CUSTOM(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) {
+ hsv.h += ((g_led_config.point[i].y - k_rgb_matrix_center.y) * 2 * cos + (g_led_config.point[i].x - k_rgb_matrix_center.x) * 2 * sin) / 128;
+ return hsv;
+}
+
+
+
+// Solid ESC
+static bool solid_esc(effect_params_t* params) {
+ HSV hsv = rgb_matrix_config.hsv;
+ RGB rgb = hsv_to_rgb(hsv);
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18 ; i < led_max; i++) {
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Solid F13
+static bool solid_f13(effect_params_t* params) {
+ HSV hsv = rgb_matrix_config.hsv;
+ RGB rgb = hsv_to_rgb(hsv);
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18 ; i < led_max; i++) {
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Solid cluster
+static bool solid_clus(effect_params_t* params) {
+ HSV hsv = rgb_matrix_config.hsv;
+ RGB rgb = hsv_to_rgb(hsv);
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 15 ; i < led_max; i++) {
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing all
+
+bool breathing_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing ESC
+static bool breathing_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b);
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing F13
+static bool breathing_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b);
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing cluster
+static bool breathing_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 15; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Band Val all
+bool band_val_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_all(params, &BAND_VAL_CUSTOM);
+}
+
+// Band Val ESC
+bool band_val_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_esc(params, &BAND_VAL_CUSTOM);
+}
+
+// Band Val F13
+bool band_val_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_f13(params, &BAND_VAL_CUSTOM);
+}
+
+// Band Val Cluster
+bool band_val_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_clus(params, &BAND_VAL_CUSTOM);
+}
+
+// Cycle Up Down All
+static bool cycle_up_down_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_all(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle Up Down ESC
+static bool cycle_up_down_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_esc(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle up down F13
+static bool cycle_up_down_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_f13(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle up down cluster
+static bool cycle_up_down_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_clus(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle out in dual All
+static bool cycle_out_in_dual_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_all(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Cycle out in dual ESC
+static bool cycle_out_in_dual_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_esc(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Cycle out in dual f13
+static bool cycle_out_in_dual_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_f13(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Cycle out in dual cluster
+static bool cycle_out_in_dual_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_clus(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Moving chevron all
+static bool rainbow_moving_chevron_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_all(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+
+// Moving chevron ESC
+static bool rainbow_moving_chevron_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_esc(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+// Moving chevron F13
+static bool rainbow_moving_chevron_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_f13(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+// Moving chevron cluster
+static bool rainbow_moving_chevron_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_clus(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+
+// Moving cycle pimwheel all
+static bool cycle_pimwheel_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_all(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving cycle pimwheel esc
+static bool cycle_pimwheel_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_esc(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving cycle pimwheel f13
+static bool cycle_pimwheel_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_f13(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving cycle pimwheel cluster
+static bool cycle_pimwheel_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_clus(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving rainbow beacon all
+static bool rainbow_beacon_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_all(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Moving rainbow beacon esc
+static bool rainbow_beacon_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_esc(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Moving rainbow beacon f13
+static bool rainbow_beacon_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_f13(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Moving rainbow beacon cluster
+static bool rainbow_beacon_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_clus(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Raindrops all
+static bool raindrops_all(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_all(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_all(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Raindrops ESC
+static bool raindrops_esc(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_esc(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_esc(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Raindrops F13
+static bool raindrops_f13(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_f13(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_f13(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Raindrops Cluster
+static bool raindrops_clus(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_clus(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_clus(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
diff --git a/keyboards/mechlovin/infinity875/keymaps/default/rules.mk b/keyboards/mechlovin/infinity875/keymaps/default/rules.mk
new file mode 100644
index 000000000000..64a7fa8664f8
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/default/rules.mk
@@ -0,0 +1 @@
+RGB_MATRIX_CUSTOM_USER = no
\ No newline at end of file
diff --git a/keyboards/mechlovin/infinity875/keymaps/via/config.h b/keyboards/mechlovin/infinity875/keymaps/via/config.h
new file mode 100644
index 000000000000..74ee03f3f9e9
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/via/config.h
@@ -0,0 +1,24 @@
+/*
+Copyright 2021 Mechlovin' Studio
+
+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 .
+*/
+
+#pragma once
+
+#ifdef RGB_MATRIX_ENABLE
+
+#define VIA_QMK_RGBLIGHT_ENABLE
+
+#endif
diff --git a/keyboards/mechlovin/infinity875/keymaps/via/keymap.c b/keyboards/mechlovin/infinity875/keymaps/via/keymap.c
new file mode 100644
index 000000000000..283104b5b2c3
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
+/* Copyright 2021 Mechlovin' Studio
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI,MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI,
+ KC_TRNS, KC_TRNS, KC_TRNS, 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_SAD, RGB_HUD,
+ 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_TOG,
+ KC_TRNS, KC_TRNS, 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_VAI,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
diff --git a/keyboards/mechlovin/infinity875/keymaps/via/readme.md b/keyboards/mechlovin/infinity875/keymaps/via/readme.md
new file mode 100644
index 000000000000..9289e7dbe2a2
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for infinity87.5
diff --git a/keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc b/keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc
new file mode 100644
index 000000000000..cee6a3f0389d
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc
@@ -0,0 +1,764 @@
+/*
+Copyright 2020 Evy Dekkers
+
+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 .
+*/
+
+RGB_MATRIX_EFFECT(solid_esc)
+RGB_MATRIX_EFFECT(solid_f13)
+RGB_MATRIX_EFFECT(solid_clus)
+RGB_MATRIX_EFFECT(breathing_all)
+RGB_MATRIX_EFFECT(breathing_esc)
+RGB_MATRIX_EFFECT(breathing_f13)
+RGB_MATRIX_EFFECT(breathing_clus)
+RGB_MATRIX_EFFECT(band_val_all)
+RGB_MATRIX_EFFECT(band_val_esc)
+RGB_MATRIX_EFFECT(band_val_f13)
+RGB_MATRIX_EFFECT(band_val_clus)
+RGB_MATRIX_EFFECT(cycle_up_down_all)
+RGB_MATRIX_EFFECT(cycle_up_down_esc)
+RGB_MATRIX_EFFECT(cycle_up_down_f13)
+RGB_MATRIX_EFFECT(cycle_up_down_clus)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_all)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_esc)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_f13)
+RGB_MATRIX_EFFECT(cycle_out_in_dual_clus)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_all)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_esc)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_f13)
+RGB_MATRIX_EFFECT(rainbow_moving_chevron_clus)
+RGB_MATRIX_EFFECT(cycle_pimwheel_all)
+RGB_MATRIX_EFFECT(cycle_pimwheel_esc)
+RGB_MATRIX_EFFECT(cycle_pimwheel_f13)
+RGB_MATRIX_EFFECT(cycle_pimwheel_clus)
+RGB_MATRIX_EFFECT(rainbow_beacon_all)
+RGB_MATRIX_EFFECT(rainbow_beacon_esc)
+RGB_MATRIX_EFFECT(rainbow_beacon_f13)
+RGB_MATRIX_EFFECT(rainbow_beacon_clus)
+RGB_MATRIX_EFFECT(raindrops_all)
+RGB_MATRIX_EFFECT(raindrops_esc)
+RGB_MATRIX_EFFECT(raindrops_f13)
+RGB_MATRIX_EFFECT(raindrops_clus)
+
+#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+bool effect_runner_all(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_esc(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_f13(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_clus(effect_params_t* params, i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_all(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_esc(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_f13(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_dx_dy_clus(effect_params_t* params, dx_dy_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 2);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
+ int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_all(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_esc(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_f13(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
+ int8_t cos_value = cos8(time) - 128;
+ int8_t sin_value = sin8(time) - 128;
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+static void raindrops_set_color_all(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+}
+
+static void raindrops_set_color_esc(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ for (uint8_t i = 1; i < 18; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+}
+
+static void raindrops_set_color_f13(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(15, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(16, 0x00, 0x00, 0x00);
+ rgb_matrix_set_color(17, 0x00, 0x00, 0x00);
+ for (uint8_t i = 0; i < 14; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+}
+
+static void raindrops_set_color_clus(int i, effect_params_t* params) {
+ if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
+ HSV hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
+
+ // Take the shortest path between hues
+ int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+
+ hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ for (uint8_t i = 0; i < 15; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+}
+
+static HSV BAND_VAL_CUSTOM(HSV hsv, uint8_t i, uint8_t time) {
+ int16_t v = hsv.v - abs(scale8(g_led_config.point[i].x, 228) + 28 - time) * 8;
+ hsv.v = scale8(v < 0 ? 0 : v, hsv.v);
+ return hsv;
+}
+
+static HSV CYCLE_UP_DOWN_CUSTOM(HSV hsv, uint8_t i, uint8_t time) {
+ hsv.h = g_led_config.point[i].y - time;
+ return hsv;
+}
+
+static HSV CYCLE_OUT_IN_DUAL_CUSTOM(HSV hsv, int16_t dx, int16_t dy, uint8_t time) {
+ dx = (k_rgb_matrix_center.x / 2) - abs8(dx);
+ uint8_t dist = sqrt16(dx * dx + dy * dy);
+ hsv.h = 3 * dist + time;
+ return hsv;
+}
+
+static HSV RAINBOW_MOVING_CHEVRON_CUSTOM(HSV hsv, uint8_t i, uint8_t time) {
+ hsv.h += abs8(g_led_config.point[i].y - k_rgb_matrix_center.y) + (g_led_config.point[i].x - time);
+ return hsv;
+}
+
+static HSV CYCLE_PINWHEEL_CUSTOM(HSV hsv, int16_t dx, int16_t dy, uint8_t time) {
+ hsv.h = atan2_8(dy, dx) + time;
+ return hsv;
+}
+
+static HSV RAINBOW_BEACON_CUSTOM(HSV hsv, int8_t sin, int8_t cos, uint8_t i, uint8_t time) {
+ hsv.h += ((g_led_config.point[i].y - k_rgb_matrix_center.y) * 2 * cos + (g_led_config.point[i].x - k_rgb_matrix_center.x) * 2 * sin) / 128;
+ return hsv;
+}
+
+
+
+// Solid ESC
+static bool solid_esc(effect_params_t* params) {
+ HSV hsv = rgb_matrix_config.hsv;
+ RGB rgb = hsv_to_rgb(hsv);
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18 ; i < led_max; i++) {
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Solid F13
+static bool solid_f13(effect_params_t* params) {
+ HSV hsv = rgb_matrix_config.hsv;
+ RGB rgb = hsv_to_rgb(hsv);
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18 ; i < led_max; i++) {
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Solid cluster
+static bool solid_clus(effect_params_t* params) {
+ HSV hsv = rgb_matrix_config.hsv;
+ RGB rgb = hsv_to_rgb(hsv);
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 15 ; i < led_max; i++) {
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing all
+
+bool breathing_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing ESC
+static bool breathing_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b);
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing F13
+static bool breathing_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 18; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b);
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Breathing cluster
+static bool breathing_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ for (uint8_t i = 15; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Band Val all
+bool band_val_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_all(params, &BAND_VAL_CUSTOM);
+}
+
+// Band Val ESC
+bool band_val_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_esc(params, &BAND_VAL_CUSTOM);
+}
+
+// Band Val F13
+bool band_val_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_f13(params, &BAND_VAL_CUSTOM);
+}
+
+// Band Val Cluster
+bool band_val_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_clus(params, &BAND_VAL_CUSTOM);
+}
+
+// Cycle Up Down All
+static bool cycle_up_down_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_all(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle Up Down ESC
+static bool cycle_up_down_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_esc(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle up down F13
+static bool cycle_up_down_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_f13(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle up down cluster
+static bool cycle_up_down_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_clus(params, &CYCLE_UP_DOWN_CUSTOM);
+}
+
+// Cycle out in dual All
+static bool cycle_out_in_dual_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_all(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Cycle out in dual ESC
+static bool cycle_out_in_dual_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_esc(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Cycle out in dual f13
+static bool cycle_out_in_dual_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_f13(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Cycle out in dual cluster
+static bool cycle_out_in_dual_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_clus(params, &CYCLE_OUT_IN_DUAL_CUSTOM);
+}
+
+// Moving chevron all
+static bool rainbow_moving_chevron_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_all(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+
+// Moving chevron ESC
+static bool rainbow_moving_chevron_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_esc(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+// Moving chevron F13
+static bool rainbow_moving_chevron_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_f13(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+// Moving chevron cluster
+static bool rainbow_moving_chevron_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_clus(params, &RAINBOW_MOVING_CHEVRON_CUSTOM);
+}
+
+// Moving cycle pimwheel all
+static bool cycle_pimwheel_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_all(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving cycle pimwheel esc
+static bool cycle_pimwheel_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_esc(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving cycle pimwheel f13
+static bool cycle_pimwheel_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_f13(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving cycle pimwheel cluster
+static bool cycle_pimwheel_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_dx_dy_clus(params, &CYCLE_PINWHEEL_CUSTOM);
+}
+
+// Moving rainbow beacon all
+static bool rainbow_beacon_all(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_all(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Moving rainbow beacon esc
+static bool rainbow_beacon_esc(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_esc(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Moving rainbow beacon f13
+static bool rainbow_beacon_f13(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_f13(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Moving rainbow beacon cluster
+static bool rainbow_beacon_clus(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min ; i < led_max; i++) {
+ rgb_matrix_set_color(i, 0x00, 0x00, 0x00);
+ }
+ return effect_runner_sin_cos_clus(params, &RAINBOW_BEACON_CUSTOM);
+}
+
+// Raindrops all
+static bool raindrops_all(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_all(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_all(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Raindrops ESC
+static bool raindrops_esc(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_esc(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_esc(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Raindrops F13
+static bool raindrops_f13(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_f13(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_f13(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+// Raindrops Cluster
+static bool raindrops_clus(effect_params_t* params) {
+ if (!params->init) {
+ // Change one LED every tick, make sure speed is not 0
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) {
+ raindrops_set_color_clus(rand() % DRIVER_LED_TOTAL, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ raindrops_set_color_clus(i, params);
+ }
+ return led_max < DRIVER_LED_TOTAL;
+}
+
+#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
diff --git a/keyboards/mechlovin/infinity875/keymaps/via/rules.mk b/keyboards/mechlovin/infinity875/keymaps/via/rules.mk
new file mode 100644
index 000000000000..0e604ef69a54
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+
+RGB_MATRIX_CUSTOM_USER = yes
\ No newline at end of file
diff --git a/keyboards/mechlovin/infinity875/matrix.c b/keyboards/mechlovin/infinity875/matrix.c
new file mode 100644
index 000000000000..b1b0d20654c8
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/matrix.c
@@ -0,0 +1,388 @@
+/*
+Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar
+Copyright 2019 Evy Dekkers
+
+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 .
+*/
+
+#include
+#include
+#include "wait.h"
+#include "util.h"
+#include "matrix.h"
+#include "debounce.h"
+#include "quantum.h"
+
+#ifdef DIRECT_PINS
+static pin_t direct_pins[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS;
+#elif (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW)
+static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
+//static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
+#endif
+
+// matrix code
+
+#ifdef DIRECT_PINS
+
+static void init_pins(void) {
+ for (int row = 0; row < MATRIX_ROWS; row++) {
+ for (int col = 0; col < MATRIX_COLS; col++) {
+ pin_t pin = direct_pins[row][col];
+ if (pin != NO_PIN) {
+ setPinInputHigh(pin);
+ }
+ }
+ }
+}
+
+static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
+ matrix_row_t last_row_value = current_matrix[current_row];
+ current_matrix[current_row] = 0;
+
+ for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
+ pin_t pin = direct_pins[current_row][col_index];
+ if (pin != NO_PIN) {
+ current_matrix[current_row] |= readPin(pin) ? 0 : (MATRIX_ROW_SHIFTER << col_index);
+ }
+ }
+
+ return (last_row_value != current_matrix[current_row]);
+}
+
+#elif (DIODE_DIRECTION == ROW2COL)
+
+/* Cols 0 - 16
+ * These columns use two 74HC138 3 to 8 bit demultiplexer. B0, F1 is the enable pin, must be set high (1) to use it.
+ *
+ * col / pin: PB5 PB7 PF0 PB0 PF1 PE6
+ * 0: 0 ── 0 ── 0 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 1: 0 ── 0 ── 1 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 2: 0 ── 1 ── 0 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 3: 0 ── 1 ── 1 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 4: 1 ── 0 ── 0 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 5: 1 ── 0 ── 1 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 6: 1 ── 1 ── 0 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 7: 1 ── 1 ── 1 1 ── 0 0
+ * ────────────────────────────────────────────
+ * 8: 0 ── 0 ── 0 0 ── 1 0
+ * ────────────────────────────────────────────
+ * 9: 0 ── 0 ── 1 0 ── 1 0
+ * ────────────────────────────────────────────
+ *10: 0 ── 1 ── 0 0 ── 1 0
+ * ────────────────────────────────────────────
+ *11: 0 ── 1 ── 1 0 ── 1 0
+ * ────────────────────────────────────────────
+ *12: 1 ── 0 ── 0 0 ── 1 0
+ * ────────────────────────────────────────────
+ *13: 1 ── 0 ── 1 0 ── 1 0
+ * ────────────────────────────────────────────
+ *14: 1 ── 1 ── 1 0 ── 1 0
+ * ────────────────────────────────────────────
+ *15: 1 ── 1 ── 0 0 ── 1 0
+ * ────────────────────────────────────────────
+ *16: 0 ── 0 ── 0 0 ── 0 1
+ *
+ */
+static void select_col(uint8_t col) {
+ switch (col) {
+ case 0:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinHigh(B0);
+ break;
+ case 1:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinHigh(B0);
+ break;
+ case 2:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinHigh(B0);
+ break;
+ case 3:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinHigh(B0);
+ break;
+ case 4:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinHigh(B0);
+ break;
+ case 5:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinHigh(B0);
+ break;
+ case 6:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinHigh(B0);
+ break;
+ case 7:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinHigh(B0);
+ break;
+ case 8:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinHigh(F1);
+ break;
+ case 9:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinHigh(F1);
+ break;
+ case 10:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinHigh(F1);
+ break;
+ case 11:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinHigh(F1);
+ break;
+ case 12:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinHigh(F1);
+ break;
+ case 13:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinHigh(F1);
+ break;
+ case 14:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinHigh(F1);
+ break;
+ case 15:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinHigh(F1);
+ break;
+ case 16:
+ writePinLow(E6);
+ break;
+ }
+}
+
+static void unselect_col(uint8_t col) {
+ switch (col) {
+ case 0:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinLow(B0);
+ break;
+ case 1:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinLow(B0);
+ break;
+ case 2:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinLow(B0);
+ break;
+ case 3:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinLow(B0);
+ break;
+ case 4:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinLow(B0);
+ break;
+ case 5:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinLow(B0);
+ break;
+ case 6:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinLow(B0);
+ break;
+ case 7:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinLow(B0);
+ break;
+ case 8:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinLow(F1);
+ break;
+ case 9:
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinLow(F1);
+ break;
+ case 10:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinLow(F1);
+ break;
+ case 11:
+ writePinHigh(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinLow(F1);
+ break;
+ case 12:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+ writePinLow(F1);
+ break;
+ case 13:
+ writePinLow(B5);
+ writePinHigh(B7);
+ writePinLow(F0);
+ writePinLow(F1);
+ break;
+ case 14:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinLow(F0);
+ writePinLow(F1);
+ break;
+ case 15:
+ writePinLow(B5);
+ writePinLow(B7);
+ writePinHigh(F0);
+ writePinLow(F1);
+ break;
+ case 16:
+ writePinHigh(E6);
+ break;
+ }
+}
+
+static void unselect_cols(void) {
+ //Native
+ writePinHigh(E6);
+
+ //Demultiplexer
+ writePinLow(B0);
+ writePinLow(F1);
+ writePinHigh(B5);
+ writePinHigh(B7);
+ writePinHigh(F0);
+}
+
+static void init_pins(void) {
+ unselect_cols();
+ for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
+ setPinInputHigh(row_pins[x]);
+ }
+ setPinOutput(B5);
+ setPinOutput(B7);
+ setPinOutput(F0);
+ setPinOutput(B0);
+ setPinOutput(F1);
+ setPinOutput(E6);
+}
+
+static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
+ bool matrix_changed = false;
+
+ // Select col and wait for col selecton to stabilize
+ select_col(current_col);
+ wait_us(30);
+
+ // For each row...
+ for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
+ // Store last value of row prior to reading
+ matrix_row_t last_row_value = current_matrix[row_index];
+
+ // Check row pin state
+ if (readPin(row_pins[row_index]) == 0) {
+ // Pin LO, set col bit
+ current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col);
+ } else {
+ // Pin HI, clear col bit
+ current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col);
+ }
+
+ // Determine if the matrix changed state
+ if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) {
+ matrix_changed = true;
+ }
+ }
+
+ // Unselect col
+ unselect_col(current_col);
+
+ return matrix_changed;
+}
+
+#endif
+
+void matrix_init_custom(void) {
+ // initialize key pins
+ init_pins();
+}
+
+bool matrix_scan_custom(matrix_row_t current_matrix[]) {
+ bool changed = false;
+
+#if defined(DIRECT_PINS) || (DIODE_DIRECTION == ROW2COL)
+ // Set col, read rows
+ for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
+ changed |= read_rows_on_col(current_matrix, current_col);
+ }
+#endif
+
+ return changed;
+}
diff --git a/keyboards/mechlovin/infinity875/readme.md b/keyboards/mechlovin/infinity875/readme.md
new file mode 100644
index 000000000000..b3e14a7bb7c0
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/readme.md
@@ -0,0 +1,24 @@
+# infinity875
+
+![infinity875](https://i.imgur.com/qt4YBwSl.jpeg)
+
+The Infinity 87.5 is in the popular A87 form factor with Top-sided USB Type-C and supports BOTH the F12 and F13 footprints, so it’s compatible with a number of TKL boards like Geonworks Frog/F1-8x; KFE-CE; Singa Jaguar, among others.
+
+* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
+* Hardware Supported: Infinity87.5, Atmega32u4
+* Hardware Availability: [GB](https://geekhack.org/index.php?topic=115251.0), [CBB Planet](https://cbbplanet.com/products/infinity-87-5-pcb), [Mechlovin' Studio](https://mechlovin.studio)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/infinity875:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/infinity875: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).
+
+**Reset Key:** 3 ways to put the IF87.5 into bootloader:
+- By keycode: Tap RESET keycode.
+- By bootmagic: hold ESC key while plugging in.
+- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in.
\ No newline at end of file
diff --git a/keyboards/mechlovin/infinity875/rules.mk b/keyboards/mechlovin/infinity875/rules.mk
new file mode 100644
index 000000000000..d16f1ac35b71
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/rules.mk
@@ -0,0 +1,23 @@
+# 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 = no # 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 = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+CUSTOM_MATRIX = lite
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+
+SRC += matrix.c
From 74b24e410bb02180aaf373c12ae3d2550e7eac29 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Fri, 11 Mar 2022 05:25:31 -0800
Subject: [PATCH 002/221] DZ64RGB: add info.json (#16616)
---
keyboards/dztech/dz64rgb/info.json | 79 ++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
create mode 100644 keyboards/dztech/dz64rgb/info.json
diff --git a/keyboards/dztech/dz64rgb/info.json b/keyboards/dztech/dz64rgb/info.json
new file mode 100644
index 000000000000..8e602bd7c0eb
--- /dev/null
+++ b/keyboards/dztech/dz64rgb/info.json
@@ -0,0 +1,79 @@
+{
+ "keyboard_name": "DZ64RGB",
+ "url": "",
+ "maintainer": "moyi4681",
+ "layouts": {
+ "LAYOUT_64_ansi": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1!", "x":1, "y":0},
+ {"label":"2@", "x":2, "y":0},
+ {"label":"3#", "x":3, "y":0},
+ {"label":"4$", "x":4, "y":0},
+ {"label":"5%", "x":5, "y":0},
+ {"label":"6^", "x":6, "y":0},
+ {"label":"7&", "x":7, "y":0},
+ {"label":"8*", "x":8, "y":0},
+ {"label":"9(", "x":9, "y":0},
+ {"label":"0)", "x":10, "y":0},
+ {"label":"-_", "x":11, "y":0},
+ {"label":"=+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[{", "x":11.5, "y":1},
+ {"label":"]}", "x":12.5, "y":1},
+ {"label":"\\|", "x":13.5, "y":1, "w":1.5},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";:", "x":10.75, "y":2},
+ {"label":"'\"", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+
+ {"label":"Shift", "x":0, "y":3, "w":2},
+ {"label":"Z", "x":2, "y":3},
+ {"label":"X", "x":3, "y":3},
+ {"label":"C", "x":4, "y":3},
+ {"label":"V", "x":5, "y":3},
+ {"label":"B", "x":6, "y":3},
+ {"label":"N", "x":7, "y":3},
+ {"label":"M", "x":8, "y":3},
+ {"label":",<", "x":9, "y":3},
+ {"label":".>", "x":10, "y":3},
+ {"label":"/?", "x":11, "y":3},
+ {"label":"Shift", "x":12, "y":3},
+ {"label":"\u2191", "x":13, "y":3},
+ {"label":"Delete", "x":14, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":6.25},
+ {"label":"Alt", "x":10, "y":4},
+ {"label":"Ctrl", "x":11, "y":4},
+ {"label":"\u2190", "x":12, "y":4},
+ {"label":"\u2193", "x":13, "y":4},
+ {"label":"\u2192", "x":14, "y":4}
+ ]
+ }
+ }
+}
From 3f797080952029e792361d7ea2cee9b423e07f72 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Fri, 11 Mar 2022 05:26:15 -0800
Subject: [PATCH 003/221] Acheron Elongate Delta: add info.json (#16615)
---
keyboards/acheron/elongate/delta/info.json | 68 ++++++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 keyboards/acheron/elongate/delta/info.json
diff --git a/keyboards/acheron/elongate/delta/info.json b/keyboards/acheron/elongate/delta/info.json
new file mode 100644
index 000000000000..d96805a66aa0
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/info.json
@@ -0,0 +1,68 @@
+{
+ "keyboard_name": "Elongate",
+ "url": "http://gondolindrim.github.io/AcheronDocs/elongate/introduction.html",
+ "maintainer": "Gondolindrim",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"Q", "x":1, "y":0},
+ {"label":"W", "x":2, "y":0},
+ {"label":"E", "x":3, "y":0},
+ {"label":"R", "x":4, "y":0},
+ {"label":"T", "x":5, "y":0},
+ {"label":"Y", "x":6, "y":0},
+ {"label":"U", "x":7, "y":0},
+ {"label":"I", "x":8, "y":0},
+ {"label":"O", "x":9, "y":0},
+ {"label":"P", "x":10, "y":0},
+ {"label":"Backspace", "x":11, "y":0},
+ {"label":"7", "x":12.5, "y":0},
+ {"label":"8", "x":13.5, "y":0},
+ {"label":"9", "x":14.5, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.25},
+ {"label":"A", "x":1.25, "y":1},
+ {"label":"S", "x":2.25, "y":1},
+ {"label":"D", "x":3.25, "y":1},
+ {"label":"F", "x":4.25, "y":1},
+ {"label":"G", "x":5.25, "y":1},
+ {"label":"H", "x":6.25, "y":1},
+ {"label":"J", "x":7.25, "y":1},
+ {"label":"K", "x":8.25, "y":1},
+ {"label":"L", "x":9.25, "y":1},
+ {"label":"Enter", "x":10.25, "y":1, "w":1.75},
+ {"label":"4", "x":12.5, "y":1},
+ {"label":"5", "x":13.5, "y":1},
+ {"label":"6", "x":14.5, "y":1},
+
+ {"label":"Shift", "x":0, "y":2, "w":1.75},
+ {"label":"Z", "x":1.75, "y":2},
+ {"label":"X", "x":2.75, "y":2},
+ {"label":"C", "x":3.75, "y":2},
+ {"label":"V", "x":4.75, "y":2},
+ {"label":"B", "x":5.75, "y":2},
+ {"label":"N", "x":6.75, "y":2},
+ {"label":"M", "x":7.75, "y":2},
+ {"label":",<", "x":8.75, "y":2},
+ {"label":"Fn", "x":9.75, "y":2, "w":1.25},
+ {"label":"\u2191", "x":11.25, "y":2.25},
+ {"label":"1", "x":12.5, "y":2},
+ {"label":"2", "x":13.5, "y":2},
+ {"label":"3", "x":14.5, "y":2},
+
+ {"label":"Ctrl", "x":0, "y":3, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":3},
+ {"label":"Alt", "x":2.25, "y":3, "w":1.25},
+ {"label":"Space/Fn2", "x":3.5, "y":3, "w":2.25},
+ {"label":"Space", "x":6.25, "y":3, "w":2.75},
+ {"label":"Alt", "x":9, "y":3},
+ {"label":"\u2190", "x":10.25, "y":3.25},
+ {"label":"\u2193", "x":11.25, "y":3.25},
+ {"label":"\u2192", "x":12.25, "y":3.25},
+ {"label":"0", "x":13.5, "y":3},
+ {"label":".", "x":14.5, "y":3}
+ ]
+ }
+ }
+}
From 1833e65370395d438b67b98a317e54d27a742c16 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Fri, 11 Mar 2022 13:27:29 +0000
Subject: [PATCH 004/221] Workaround for pin_def errors on KINETIS (#16614)
---
platforms/pin_defs.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/platforms/pin_defs.h b/platforms/pin_defs.h
index 341fe89b6e9f..af2c415f400f 100644
--- a/platforms/pin_defs.h
+++ b/platforms/pin_defs.h
@@ -15,6 +15,10 @@
*/
#pragma once
+// TODO: including this avoids "error: expected identifier before '(' token" errors
+// here just to please KINETIS builds...
+#include "platform_deps.h"
+
// useful for direct pin mapping
#define NO_PIN (pin_t)(~0)
From 0eb42e042cb161d961d4d0fd6351eeed122f1e0c Mon Sep 17 00:00:00 2001
From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
Date: Fri, 11 Mar 2022 05:28:52 -0800
Subject: [PATCH 005/221] Fix flipped One Shot logic (#16617)
---
quantum/action_util.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/quantum/action_util.c b/quantum/action_util.c
index 4ea0bf61fbcd..cf81370d4a8d 100644
--- a/quantum/action_util.c
+++ b/quantum/action_util.c
@@ -202,8 +202,9 @@ bool is_oneshot_layer_active(void) {
* FIXME: needs doc
*/
void oneshot_set(bool active) {
- if (keymap_config.oneshot_disable != active) {
- keymap_config.oneshot_disable = active;
+ const bool disable = !active;
+ if (keymap_config.oneshot_disable != disable) {
+ keymap_config.oneshot_disable = disable;
eeconfig_update_keymap(keymap_config.raw);
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
dprintf("Oneshot: active: %d\n", active);
@@ -235,7 +236,7 @@ void oneshot_disable(void) {
}
bool is_oneshot_enabled(void) {
- return keymap_config.oneshot_disable;
+ return !keymap_config.oneshot_disable;
}
#endif
From dd32cdf527d4647a9488b1b4c142fff1d663bc56 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Fri, 11 Mar 2022 18:50:59 +0000
Subject: [PATCH 006/221] Redo workaround for pin_def errors on KINETIS
(#16620)
* Redo workaround for pin_def errors on KINETIS
* Redo workaround for pin_def errors on KINETIS
---
platforms/chibios/_pin_defs.h | 6 ++++++
platforms/pin_defs.h | 4 ----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/platforms/chibios/_pin_defs.h b/platforms/chibios/_pin_defs.h
index c03f8de0c253..a84d931cc20c 100644
--- a/platforms/chibios/_pin_defs.h
+++ b/platforms/chibios/_pin_defs.h
@@ -15,6 +15,12 @@
*/
#pragma once
+#if defined(MCU_KINETIS)
+// TODO: including this avoids "error: expected identifier before '(' token" errors
+// here just to please KINETIS builds...
+# include
+#endif
+
// Defines mapping for Proton C replacement
#ifdef CONVERT_TO_PROTON_C
// Left side (front)
diff --git a/platforms/pin_defs.h b/platforms/pin_defs.h
index af2c415f400f..341fe89b6e9f 100644
--- a/platforms/pin_defs.h
+++ b/platforms/pin_defs.h
@@ -15,10 +15,6 @@
*/
#pragma once
-// TODO: including this avoids "error: expected identifier before '(' token" errors
-// here just to please KINETIS builds...
-#include "platform_deps.h"
-
// useful for direct pin mapping
#define NO_PIN (pin_t)(~0)
From 86b123141bea2e3f831a57eb115368cbbbdb2da1 Mon Sep 17 00:00:00 2001
From: Thomas Kriechbaumer
Date: Sat, 12 Mar 2022 13:42:25 +0100
Subject: [PATCH 007/221] docs: fix code sample (#16623)
---
docs/feature_pointing_device.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/feature_pointing_device.md b/docs/feature_pointing_device.md
index 23a16b843ded..8c51865558e2 100644
--- a/docs/feature_pointing_device.md
+++ b/docs/feature_pointing_device.md
@@ -325,7 +325,8 @@ report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
if (set_scrolling) {
mouse_report.h = mouse_report.x;
mouse_report.v = mouse_report.y;
- mouse_report.x = mouse_report.y = 0
+ mouse_report.x = 0;
+ mouse_report.y = 0;
}
return mouse_report;
}
From 20424fd37f84cbe08740539a48b6bb4839e0a179 Mon Sep 17 00:00:00 2001
From: Matthew Dias
Date: Sun, 13 Mar 2022 01:36:12 -0600
Subject: [PATCH 008/221] [Keyboard] Add Glitch (#16444)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/p3d/glitch/config.h | 84 +++++
keyboards/p3d/glitch/glitch.c | 58 ++++
keyboards/p3d/glitch/glitch.h | 40 +++
keyboards/p3d/glitch/info.json | 300 ++++++++++++++++++
keyboards/p3d/glitch/keymaps/default/keymap.c | 29 ++
.../p3d/glitch/keymaps/default/readme.md | 1 +
keyboards/p3d/glitch/readme.md | 24 ++
keyboards/p3d/glitch/rules.mk | 20 ++
8 files changed, 556 insertions(+)
create mode 100644 keyboards/p3d/glitch/config.h
create mode 100644 keyboards/p3d/glitch/glitch.c
create mode 100644 keyboards/p3d/glitch/glitch.h
create mode 100644 keyboards/p3d/glitch/info.json
create mode 100644 keyboards/p3d/glitch/keymaps/default/keymap.c
create mode 100644 keyboards/p3d/glitch/keymaps/default/readme.md
create mode 100644 keyboards/p3d/glitch/readme.md
create mode 100644 keyboards/p3d/glitch/rules.mk
diff --git a/keyboards/p3d/glitch/config.h b/keyboards/p3d/glitch/config.h
new file mode 100644
index 000000000000..e7f78123d9ad
--- /dev/null
+++ b/keyboards/p3d/glitch/config.h
@@ -0,0 +1,84 @@
+/*
+Copyright 2021 Matthew Dias
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+#define VENDOR_ID 0x7033
+#define PRODUCT_ID 0x3568
+#define DEVICE_VER 0x0001
+#define MANUFACTURER P3D Store
+#define PRODUCT Glitch
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 8
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+
+/* A Custom matrix.c is used to poll the port expander C6 shows that the pins are hardwired there */
+#define MATRIX_ROW_PINS { D5, D6, B6, D7, C7, B4, B5, D3, D4, C6 }
+#define MATRIX_COL_PINS { B2, D2, B3, B7, F5, F4, F1, F0 }
+#define UNUSED_PINS
+
+#define RGB_DI_PIN B1
+#define RGBLED_NUM 25
+#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 ENCODERS_PAD_A { F6 }
+#define ENCODERS_PAD_B { F7 }
+#define ENCODER_RESOLUTION 2
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define USB_MAX_POWER_CONSUMPTION 400
+
+/* 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
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
diff --git a/keyboards/p3d/glitch/glitch.c b/keyboards/p3d/glitch/glitch.c
new file mode 100644
index 000000000000..a62f5789942e
--- /dev/null
+++ b/keyboards/p3d/glitch/glitch.c
@@ -0,0 +1,58 @@
+/* Copyright 2021 Matthew Dias
+ *
+ * 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 .
+ */
+#include "glitch.h"
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) {
+ return false;
+ }
+ if (clockwise) {
+ // tap_code(RGB_MOD);
+ rgblight_step();
+ } else {
+ // tap_code(RGB_RMOD);
+ rgblight_step_reverse();
+ }
+
+ return false;
+}
+#endif
+
+#ifdef OLED_ENABLE
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR("Layer: "), false);
+
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_P(PSTR("Default\n"), false);
+ break;
+ default:
+ oled_write_P(PSTR("Undefined\n"), false);
+ }
+
+ // Host Keyboard LED Status
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
+ oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
+ oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
+
+ return false;
+}
diff --git a/keyboards/p3d/glitch/glitch.h b/keyboards/p3d/glitch/glitch.h
new file mode 100644
index 000000000000..4b4f77396b73
--- /dev/null
+++ b/keyboards/p3d/glitch/glitch.h
@@ -0,0 +1,40 @@
+/* Copyright 2021 Matthew Dias
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#define XXX KC_NO
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
+ K10, K11, K12, K13, K14, K15, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
+ K20, K21, K22, K23, K24, K25, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \
+ K40, K41, K43, K45, K47, K49, K4B, K4C, K4D, K4E, K4F \
+) { \
+ { K00, K02, K04, K06, K08, K0A, K0C, K0E }, \
+ { K01, K03, K05, K07, K09, K0B, K0D, K0F }, \
+ { K10, K12, K14, XXX, K18, K1A, K1C, K1E }, \
+ { K11, K13, K15, K17, K19, K1B, K1D, K1F }, \
+ { K20, K22, K24, XXX, K28, K2A, K2C, K2E }, \
+ { K21, K23, K25, K27, K29, K2B, XXX, K2F }, \
+ { K30, K32, K34, K36, K38, K3A, K3C, K3E }, \
+ { XXX, K33, K35, K37, K39, K3B, K3D, K3F }, \
+ { K40, XXX, XXX, XXX, XXX, XXX, K4C, K4E }, \
+ { K41, K43, K45, K47, K49, K4B, K4D, K4F } \
+}
diff --git a/keyboards/p3d/glitch/info.json b/keyboards/p3d/glitch/info.json
new file mode 100644
index 000000000000..6445e200f81d
--- /dev/null
+++ b/keyboards/p3d/glitch/info.json
@@ -0,0 +1,300 @@
+{
+ "keyboard_name": "Glitch",
+ "url": "https://p3dstore.com/products/p3d-glitch-group-buy",
+ "maintainer": "matthewdias",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{
+ "x": 19.1,
+ "y": 0.1
+ }, {
+ "label": "ESC",
+ "x": 0.5,
+ "y": 0.5
+ }, {
+ "label": "1",
+ "x": 1.5,
+ "y": 0.5
+ }, {
+ "label": "_",
+ "x": 14.5,
+ "y": 0.6
+ }, {
+ "label": "+",
+ "x": 15.5,
+ "y": 0.6
+ }, {
+ "label": "Back",
+ "x": 16.5,
+ "y": 0.6
+ }, {
+ "label": "Del",
+ "x": 17.5,
+ "y": 0.6
+ }, {
+ "label": "2",
+ "x": 3.25,
+ "y": 1.0
+ }, {
+ "label": "3",
+ "x": 4.25,
+ "y": 1.0
+ }, {
+ "label": "4",
+ "x": 5.25,
+ "y": 1.0
+ }, {
+ "label": "5",
+ "x": 6.25,
+ "y": 1.0
+ }, {
+ "label": "6",
+ "x": 7.25,
+ "y": 1.0
+ }, {
+ "label": "7",
+ "x": 10,
+ "y": 1.0
+ }, {
+ "label": "8",
+ "x": 11,
+ "y": 1.0
+ }, {
+ "label": "9",
+ "x": 12,
+ "y": 1.0
+ }, {
+ "label": "0",
+ "x": 13,
+ "y": 1.0
+ }, {
+ "label": "TAB",
+ "x": 0.15,
+ "y": 1.5,
+ "w": 1.5
+ }, {
+ "label": "Q",
+ "x": 1.65,
+ "y": 1.5
+ }, {
+ "label": "P",
+ "x": 14.35,
+ "y": 1.6
+ }, {
+ "label": "[",
+ "x": 15.35,
+ "y": 1.6
+ }, {
+ "label": "]",
+ "x": 16.35,
+ "y": 1.6
+ }, {
+ "label": "\\",
+ "x": 17.35,
+ "y": 1.6,
+ "w": 1.5
+ }, {
+ "x": 19.1,
+ "y": 1.6
+ }, {
+ "label": "W",
+ "x": 3.75,
+ "y": 2.0
+ }, {
+ "label": "E",
+ "x": 4.75,
+ "y": 2.0
+ }, {
+ "label": "R",
+ "x": 5.75,
+ "y": 2.0
+ }, {
+ "label": "T",
+ "x": 6.75,
+ "y": 2.0
+ }, {
+ "label": "Y",
+ "x": 9.5,
+ "y": 2.0
+ }, {
+ "label": "U",
+ "x": 10.5,
+ "y": 2.0
+ }, {
+ "label": "I",
+ "x": 11.5,
+ "y": 2.0
+ }, {
+ "label": "O",
+ "x": 12.5,
+ "y": 2.0
+ }, {
+ "label": "CAPS",
+ "x": 0.15,
+ "y": 2.5,
+ "w": 1.75
+ }, {
+ "label": "A",
+ "x": 1.9,
+ "y": 2.5
+ }, {
+ "label": ";",
+ "x": 14.6,
+ "y": 2.6
+ }, {
+ "label": "'",
+ "x": 15.6,
+ "y": 2.6
+ }, {
+ "label": "ENTER",
+ "x": 16.6,
+ "y": 2.6,
+ "w": 2.25
+ }, {
+ "x": 19.1,
+ "y": 2.6
+ }, {
+ "label": "S",
+ "x": 4,
+ "y": 3.0
+ }, {
+ "label": "D",
+ "x": 5,
+ "y": 3.0
+ }, {
+ "label": "F",
+ "x": 6,
+ "y": 3.0
+ }, {
+ "label": "G",
+ "x": 7,
+ "y": 3.0
+ }, {
+ "label": "H",
+ "x": 9.75,
+ "y": 3.0
+ }, {
+ "label": "J",
+ "x": 10.75,
+ "y": 3.0
+ }, {
+ "label": "K",
+ "x": 11.75,
+ "y": 3.0
+ }, {
+ "label": "L",
+ "x": 12.75,
+ "y": 3.0
+ }, {
+ "label": "SHIFT",
+ "x": 0,
+ "y": 3.5,
+ "w": 2.25
+ }, {
+ "label": "Z",
+ "x": 2.25,
+ "y": 3.5
+ }, {
+ "label": ".",
+ "x": 14.25,
+ "y": 3.6
+ }, {
+ "label": "?",
+ "x": 15.25,
+ "y": 3.6
+ }, {
+ "label": "SHIFT",
+ "x": 16.25,
+ "y": 3.6,
+ "w": 1.75
+ }, {
+ "x": 19.5,
+ "y": 3.6
+ }, {
+ "label": "UP",
+ "x": 18.25,
+ "y": 3.85
+ }, {
+ "label": "X",
+ "x": 4.5,
+ "y": 4.0
+ }, {
+ "label": "C",
+ "x": 5.5,
+ "y": 4.0
+ }, {
+ "label": "V",
+ "x": 6.5,
+ "y": 4.0
+ }, {
+ "label": "B",
+ "x": 7.5,
+ "y": 4.0
+ }, {
+ "label": "BEE",
+ "x": 9.25,
+ "y": 4.0
+ }, {
+ "label": "N",
+ "x": 10.25,
+ "y": 4.0
+ }, {
+ "label": "M",
+ "x": 11.25,
+ "y": 4.0
+ }, {
+ "label": ",",
+ "x": 12.25,
+ "y": 4.0
+ }, {
+ "label": "CTRL",
+ "x": 0,
+ "y": 4.5,
+ "w": 1.25
+ }, {
+ "label": "WIN",
+ "x": 1.25,
+ "y": 4.5,
+ "w": 1.25
+ }, {
+ "label": "WIN",
+ "x": 15,
+ "y": 4.6
+ }, {
+ "label": "CTRL",
+ "x": 16,
+ "y": 4.6
+ }, {
+ "label": "LEFT",
+ "x": 17.25,
+ "y": 4.85
+ }, {
+ "label": "DOWN",
+ "x": 18.25,
+ "y": 4.85
+ }, {
+ "label": "RIGHT",
+ "x": 19.25,
+ "y": 4.85
+ }, {
+ "x": 4.75,
+ "y": 5.0,
+ "w": 2.75
+ }, {
+ "label": "ALT",
+ "x": 7.5,
+ "y": 5.0,
+ "w": 1.25
+ }, {
+ "label": "ALT",
+ "x": 9.5,
+ "y": 5.0,
+ "w": 1.25
+ }, {
+ "x": 10.75,
+ "y": 5.0,
+ "w": 2.25
+ }]
+ }
+ }
+}
diff --git a/keyboards/p3d/glitch/keymaps/default/keymap.c b/keyboards/p3d/glitch/keymaps/default/keymap.c
new file mode 100644
index 000000000000..43aa53c9f1cc
--- /dev/null
+++ b/keyboards/p3d/glitch/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
+/* Copyright 2021 Matthew Dias
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+//This is the ANSI version of the PCB
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MUTE,
+ 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_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+)
+};
+
diff --git a/keyboards/p3d/glitch/keymaps/default/readme.md b/keyboards/p3d/glitch/keymaps/default/readme.md
new file mode 100644
index 000000000000..8661c4b95f65
--- /dev/null
+++ b/keyboards/p3d/glitch/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Glitch
diff --git a/keyboards/p3d/glitch/readme.md b/keyboards/p3d/glitch/readme.md
new file mode 100644
index 000000000000..b29dc6e9306e
--- /dev/null
+++ b/keyboards/p3d/glitch/readme.md
@@ -0,0 +1,24 @@
+# Glitch
+
+Hotswap RGB Alice-style with OLED and Rotary Knob
+
+- Keyboard Maintainer: matthewdias
+- Hardware Supported: Glitch PCB
+- Hardware Availability: https://p3dstore.com
+
+Make example for this keyboard (after setting up your build environment):
+
+ make p3d/glitch:default
+
+Flashing example for this keyboard:
+
+ make p3d/glitch:default:flash
+
+## Bootloader
+
+Enter the bootloader in one of 2 ways:
+
+* **Bootmagic reset**: Hold down the top left and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the top of the PCB
+
+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).
diff --git a/keyboards/p3d/glitch/rules.mk b/keyboards/p3d/glitch/rules.mk
new file mode 100644
index 000000000000..7ec8d5c09ac5
--- /dev/null
+++ b/keyboards/p3d/glitch/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
+OLED_ENABLE = yes
From dccb5711c710d074c29f715494b93f9275f5ac55 Mon Sep 17 00:00:00 2001
From: Matthew Dias
Date: Sun, 13 Mar 2022 01:37:22 -0600
Subject: [PATCH 009/221] [Keyboard] Add damapad (#16443)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/bolsa/damapad/config.h | 59 ++++++++++
keyboards/bolsa/damapad/damapad.c | 81 +++++++++++++
keyboards/bolsa/damapad/damapad.h | 32 +++++
keyboards/bolsa/damapad/info.json | 109 ++++++++++++++++++
.../bolsa/damapad/keymaps/default/keymap.c | 29 +++++
keyboards/bolsa/damapad/keymaps/via/keymap.c | 47 ++++++++
keyboards/bolsa/damapad/keymaps/via/rules.mk | 1 +
keyboards/bolsa/damapad/readme.md | 22 ++++
keyboards/bolsa/damapad/rules.mk | 21 ++++
9 files changed, 401 insertions(+)
create mode 100644 keyboards/bolsa/damapad/config.h
create mode 100644 keyboards/bolsa/damapad/damapad.c
create mode 100644 keyboards/bolsa/damapad/damapad.h
create mode 100644 keyboards/bolsa/damapad/info.json
create mode 100644 keyboards/bolsa/damapad/keymaps/default/keymap.c
create mode 100644 keyboards/bolsa/damapad/keymaps/via/keymap.c
create mode 100644 keyboards/bolsa/damapad/keymaps/via/rules.mk
create mode 100644 keyboards/bolsa/damapad/readme.md
create mode 100644 keyboards/bolsa/damapad/rules.mk
diff --git a/keyboards/bolsa/damapad/config.h b/keyboards/bolsa/damapad/config.h
new file mode 100644
index 000000000000..b829a8a998c1
--- /dev/null
+++ b/keyboards/bolsa/damapad/config.h
@@ -0,0 +1,59 @@
+
+/*
+Copyright 2021 Matthew Dias
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6D64
+#define PRODUCT_ID 0x6470
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Bolsa Keyboard Supply
+#define PRODUCT Damapad
+
+/* key matrix size */
+#define MATRIX_ROWS 3
+#define MATRIX_COLS 6
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { E6, F7, C7 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, B7 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define ENCODERS_PAD_A { B2 }
+#define ENCODERS_PAD_B { B3 }
+#define ENCODER_RESOLUTION 2
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
diff --git a/keyboards/bolsa/damapad/damapad.c b/keyboards/bolsa/damapad/damapad.c
new file mode 100644
index 000000000000..d57a60c1669c
--- /dev/null
+++ b/keyboards/bolsa/damapad/damapad.c
@@ -0,0 +1,81 @@
+/*
+Copyright 2021 Matthew Dias
+
+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 .
+*/
+
+#include "damapad.h"
+
+#ifdef OLED_ENABLE
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ static const char PROGMEM bolsa_logo[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x3e, 0xfe, 0xfe, 0xfc, 0xfc,
+ 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc,
+ 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc,
+ 0xfc, 0xfe, 0xfe, 0x3e, 0x1e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0x3e, 0xfe, 0xfe, 0xff, 0x7f, 0x7f,
+ 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
+ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f,
+ 0x7f, 0xff, 0xfe, 0xfe, 0x3e, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xf8,
+ 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8,
+ 0x00, 0x00, 0x0f, 0xff, 0xfe, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3f, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x1f,
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f,
+ 0x1f, 0x00, 0x00, 0x00, 0x07, 0x3f, 0x3f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ oled_write_raw_P(bolsa_logo, sizeof(bolsa_logo));
+ return false;
+}
+
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ return OLED_ROTATION_180;
+}
+#endif
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ if (index == 0) {
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ }
+ return true;
+}
+#endif
\ No newline at end of file
diff --git a/keyboards/bolsa/damapad/damapad.h b/keyboards/bolsa/damapad/damapad.h
new file mode 100644
index 000000000000..da0a4d863eda
--- /dev/null
+++ b/keyboards/bolsa/damapad/damapad.h
@@ -0,0 +1,32 @@
+/*
+Copyright 2021 Matthew Dias
+
+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 .
+*/
+
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_wkl( \
+ K00, K01, K02, K03, K04, K05, \
+ K10, K11, K12, K13, K14, K15, \
+ K20, K21, K23, K25 \
+) { \
+ { K00, K01, K02, K03, K04, K05 }, \
+ { K10, K11, K12, K13, K14, K15 }, \
+ { K20, K21, XXX, K23, XXX, K25 } \
+}
diff --git a/keyboards/bolsa/damapad/info.json b/keyboards/bolsa/damapad/info.json
new file mode 100644
index 000000000000..28d0c4fc827c
--- /dev/null
+++ b/keyboards/bolsa/damapad/info.json
@@ -0,0 +1,109 @@
+{
+ "keyboard_name": "Damapad",
+ "url": "",
+ "maintainer": "matthewdias",
+ "layouts": {
+ "LAYOUT_wkl": {
+ "layout": [{
+ "x": 5.25,
+ "y": 0
+ }, {
+ "x": 0,
+ "y": 0.25
+ }, {
+ "x": 1,
+ "y": 0.25
+ }, {
+ "x": 2,
+ "y": 0.25
+ }, {
+ "x": 3,
+ "y": 0.25
+ }, {
+ "x": 4,
+ "y": 0.25
+ }, {
+ "x": 0,
+ "y": 1.25
+ }, {
+ "x": 1,
+ "y": 1.25
+ }, {
+ "x": 2,
+ "y": 1.25
+ }, {
+ "x": 3,
+ "y": 1.25
+ }, {
+ "x": 4,
+ "y": 1.25
+ }, {
+ "x": 5.25,
+ "y": 1.25
+ }, {
+ "x": 0,
+ "y": 2.25
+ }, {
+ "x": 1.75,
+ "y": 2.25
+ }, {
+ "x": 2.75,
+ "y": 2.25,
+ "w": 2.25
+ }, {
+ "x": 5.25,
+ "y": 2.25
+ }]
+ },
+ "LAYOUT_bar": {
+ "layout": [{
+ "x": 5.25,
+ "y": 0
+ }, {
+ "x": 0,
+ "y": 0.25
+ }, {
+ "x": 1,
+ "y": 0.25
+ }, {
+ "x": 2,
+ "y": 0.25
+ }, {
+ "x": 3,
+ "y": 0.25
+ }, {
+ "x": 4,
+ "y": 0.25
+ }, {
+ "x": 0,
+ "y": 1.25
+ }, {
+ "x": 1,
+ "y": 1.25
+ }, {
+ "x": 2,
+ "y": 1.25
+ }, {
+ "x": 3,
+ "y": 1.25
+ }, {
+ "x": 4,
+ "y": 1.25
+ }, {
+ "x": 5.25,
+ "y": 1.25
+ }, {
+ "x": 0,
+ "y": 2.25,
+ "w": 2.75
+ }, {
+ "x": 2.75,
+ "y": 2.25,
+ "w": 2.25
+ }, {
+ "x": 5.25,
+ "y": 2.25
+ }]
+ }
+ }
+}
diff --git a/keyboards/bolsa/damapad/keymaps/default/keymap.c b/keyboards/bolsa/damapad/keymaps/default/keymap.c
new file mode 100644
index 000000000000..00c8e0533338
--- /dev/null
+++ b/keyboards/bolsa/damapad/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
+/*
+Copyright 2021 Matthew Dias
+
+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 .
+*/
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_wkl(
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_MSEL, KC_MUTE,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP,
+ KC_NO, KC_COPY, KC_PASTE, KC_PGDN
+ )
+
+};
+
diff --git a/keyboards/bolsa/damapad/keymaps/via/keymap.c b/keyboards/bolsa/damapad/keymaps/via/keymap.c
new file mode 100644
index 000000000000..18ae31520780
--- /dev/null
+++ b/keyboards/bolsa/damapad/keymaps/via/keymap.c
@@ -0,0 +1,47 @@
+/*
+Copyright 2021 Matthew Dias
+
+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 .
+*/
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_wkl(
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_MSEL, KC_MUTE,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP,
+ KC_NO, KC_COPY, KC_PASTE, KC_PGDN
+ ),
+
+ [1] = LAYOUT_wkl(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_wkl(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_wkl(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
+
diff --git a/keyboards/bolsa/damapad/keymaps/via/rules.mk b/keyboards/bolsa/damapad/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/bolsa/damapad/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/bolsa/damapad/readme.md b/keyboards/bolsa/damapad/readme.md
new file mode 100644
index 000000000000..1cfa1c06b7e6
--- /dev/null
+++ b/keyboards/bolsa/damapad/readme.md
@@ -0,0 +1,22 @@
+# Damapad
+
+A Macropad by Bolsa Supply
+
+- Keyboard Maintainer: [matthewdias](https://github.com/matthewdias)
+- Hardware Supported: Damapad PCB
+
+Make example for this keyboard (after setting up your build environment):
+
+ make bolsa/damapad:default
+
+Flashing example for this keyboard:
+
+ make bolsa/damapad: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:
+
+- **Physical reset button**: Briefly press the button on the back of the PCB (or short the reset/ground pads, should a tactile button not be installed)
diff --git a/keyboards/bolsa/damapad/rules.mk b/keyboards/bolsa/damapad/rules.mk
new file mode 100644
index 000000000000..48717046e46a
--- /dev/null
+++ b/keyboards/bolsa/damapad/rules.mk
@@ -0,0 +1,21 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
+OLED_ENABLE = yes
+OLED_DRIVER = SSD1306
From 08794fef4e8e0a5fb6ba32595c099bf1e167c12b Mon Sep 17 00:00:00 2001
From: jack <0x6A73@pm.me>
Date: Sun, 13 Mar 2022 04:08:33 -0600
Subject: [PATCH 010/221] [Keyboard] add missing endif in glitch keyboard
(#16629)
---
keyboards/p3d/glitch/glitch.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/keyboards/p3d/glitch/glitch.c b/keyboards/p3d/glitch/glitch.c
index a62f5789942e..9957e0c7adee 100644
--- a/keyboards/p3d/glitch/glitch.c
+++ b/keyboards/p3d/glitch/glitch.c
@@ -56,3 +56,4 @@ bool oled_task_kb(void) {
return false;
}
+#endif
From 1f63dbfb8e3b00f7d1c87cb29d05770a93a77f9c Mon Sep 17 00:00:00 2001
From: jpe230
Date: Sun, 13 Mar 2022 04:09:36 -0600
Subject: [PATCH 011/221] [Keymap] Update personal crkbd keymap (#16624)
---
keyboards/crkbd/keymaps/jpe230/config.h | 22 ++++++++++-
keyboards/crkbd/keymaps/jpe230/keymap.c | 49 +++++++++++++++++++++----
keyboards/crkbd/keymaps/jpe230/rules.mk | 18 ++++++---
3 files changed, 74 insertions(+), 15 deletions(-)
diff --git a/keyboards/crkbd/keymaps/jpe230/config.h b/keyboards/crkbd/keymaps/jpe230/config.h
index 3680f7c480c3..2887b5014cf7 100644
--- a/keyboards/crkbd/keymaps/jpe230/config.h
+++ b/keyboards/crkbd/keymaps/jpe230/config.h
@@ -21,4 +21,24 @@ along with this program. If not, see .
#pragma once
-#define SPLIT_WPM_ENABLE
+#ifndef RGB_MATRIX_ENABLE
+# define SPLIT_WPM_ENABLE
+#endif
+
+#ifdef RGB_MATRIX_ENABLE
+# define RGB_MATRIX_KEYPRESSES
+# define RGB_DISABLE_WHEN_USB_SUSPENDED
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128
+# define RGB_MATRIX_STARTUP_HUE 215
+# define RGB_MATRIX_STARTUP_SAT 255
+# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+# define ENABLE_RGB_MATRIX_ALPHAS_MODS
+# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+# define ENABLE_RGB_MATRIX_BAND_VAL
+# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#endif
diff --git a/keyboards/crkbd/keymaps/jpe230/keymap.c b/keyboards/crkbd/keymaps/jpe230/keymap.c
index 65cb6f73f756..6e812c0e612d 100644
--- a/keyboards/crkbd/keymaps/jpe230/keymap.c
+++ b/keyboards/crkbd/keymaps/jpe230/keymap.c
@@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ 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_CAPS, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, KC_UP, _______, RGB_MOD, RGB_HUI, RGB_VAI,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_LSFT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______, _______,
+ KC_LSFT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT, RGB_TOG, RGB_SAI, RGB_SPI,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, _______, _______, MO(3), KC_RALT
//`--------------------------' `--------------------------'
@@ -58,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[2] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -83,7 +83,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return rotation;
+#ifdef RGB_MATRIX_ENABLE
+ if (!is_keyboard_master()) {
+ return OLED_ROTATION_180; // flips the display 180 degrees if offhand
+ }
+#endif
+ return rotation;
}
#define L_BASE 0
@@ -163,6 +168,7 @@ void render_bootmagic_status(bool status) {
}
}
+#ifndef RGB_MATRIX_ENABLE
// frame 0, 128x32px
const char PROGMEM cat_frame_0 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -282,8 +288,18 @@ static uint32_t frame_timer = 0;
static uint32_t anim_sleep = 0;
static uint8_t anim_speed = 120;
-void oled_render_logo(void) {
+#endif
+void oled_render_logo(void) {
+#ifdef RGB_MATRIX_ENABLE
+ static const char PROGMEM crkbd_logo[] = {
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
+ 0};
+ oled_write_P(crkbd_logo, false);
+#endif
+#ifndef RGB_MATRIX_ENABLE
if(get_current_wpm() != 000) {
oled_on();
int8_t wpm_speed = (int8_t)(get_current_wpm() / 2);
@@ -309,6 +325,7 @@ void oled_render_logo(void) {
oled_write_raw_P(cat_frames[current_frame], FRAME_SIZE);
}
}
+#endif
}
bool oled_task_user(void) {
@@ -328,6 +345,9 @@ bool tog_sarcasm = false;
bool uppercase = false;
uint8_t prev_upper = 0;
uint8_t prev_lower = 0;
+uint8_t prev_mode = 0;
+HSV prev_hsv;
+
bool process_record_sarcasm(uint16_t keycode, keyrecord_t *record) {
if (keycode == KC_ENTER && record->event.pressed) {
@@ -379,10 +399,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
tog_sarcasm = !tog_sarcasm;
- if (tog_sarcasm)
+ if (tog_sarcasm) {
dprint("Enabling saRCaSm ModE\n");
- else
+
+ #ifdef RGB_MATRIX_ENABLE
+ prev_hsv = rgb_matrix_get_hsv();
+ prev_mode = rgb_matrix_get_mode();
+ rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_MULTISPLASH);
+ rgb_matrix_sethsv_noeeprom(HSV_YELLOW);
+ #endif
+ }
+ else {
dprint("Disabling saRCaSm ModE\n");
+ #ifdef RGB_MATRIX_ENABLE
+ rgb_matrix_mode_noeeprom(prev_mode);
+ rgb_matrix_sethsv_noeeprom(prev_hsv.h, prev_hsv.s, prev_hsv.v);
+ #endif
+ }
uppercase = false;
prev_upper = 0;
diff --git a/keyboards/crkbd/keymaps/jpe230/rules.mk b/keyboards/crkbd/keymaps/jpe230/rules.mk
index 27a25ddeb3a5..82d5eb321dbb 100644
--- a/keyboards/crkbd/keymaps/jpe230/rules.mk
+++ b/keyboards/crkbd/keymaps/jpe230/rules.mk
@@ -1,6 +1,12 @@
-MOUSEKEY_ENABLE = yes
-OLED_ENABLE = yes
-OLED_DRIVER = SSD1306
-LTO_ENABLE = yes
-WPM_ENABLE = yes
-VIA_ENABLE = yes
+# Shared rules for both of my Corne
+OLED_ENABLE = yes
+OLED_DRIVER = SSD1306
+LTO_ENABLE = yes
+VIA_ENABLE = yes
+
+# Rules for my Corne without RGB
+# WPM_ENABLE = yes
+# MOUSEKEY_ENABLE = yes
+
+# Rules for my Corne with RGB
+RGB_MATRIX_ENABLE = yes
From b906af0073e08927ed5105c826d579c6421cb7ac Mon Sep 17 00:00:00 2001
From: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Date: Sun, 13 Mar 2022 22:56:56 +0900
Subject: [PATCH 012/221] helix:edvorakjp keymap change to use split_common
(#16532)
---
keyboards/helix/rev2/keymaps/edvorakjp/rules.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
index 59b7acad5bce..6b2d147514ce 100644
--- a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
+++ b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
@@ -5,6 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
+SPLIT_KEYBOARD = yes
LTO_ENABLE = no # if firmware size over limit, try this option
TAP_DANCE_ENABLE = yes
From 109c60feeb24081f6bcc78276d7426c5340f2822 Mon Sep 17 00:00:00 2001
From: jels <66403163+Jels02@users.noreply.github.com>
Date: Mon, 14 Mar 2022 03:30:55 +1000
Subject: [PATCH 013/221] [Keyboard] Add support for Jels60 (#16605)
Co-authored-by: Drashna Jaelre
---
keyboards/jels/jels60/config.h | 49 +++
keyboards/jels/jels60/info.json | 344 ++++++++++++++++++
keyboards/jels/jels60/jels60.c | 21 ++
keyboards/jels/jels60/jels60.h | 95 +++++
.../jels/jels60/keymaps/default/keymap.c | 50 +++
keyboards/jels/jels60/keymaps/via/keymap.c | 50 +++
keyboards/jels/jels60/keymaps/via/rules.mk | 1 +
keyboards/jels/jels60/readme.md | 23 ++
keyboards/jels/jels60/rules.mk | 18 +
9 files changed, 651 insertions(+)
create mode 100644 keyboards/jels/jels60/config.h
create mode 100644 keyboards/jels/jels60/info.json
create mode 100644 keyboards/jels/jels60/jels60.c
create mode 100644 keyboards/jels/jels60/jels60.h
create mode 100644 keyboards/jels/jels60/keymaps/default/keymap.c
create mode 100644 keyboards/jels/jels60/keymaps/via/keymap.c
create mode 100644 keyboards/jels/jels60/keymaps/via/rules.mk
create mode 100644 keyboards/jels/jels60/readme.md
create mode 100644 keyboards/jels/jels60/rules.mk
diff --git a/keyboards/jels/jels60/config.h b/keyboards/jels/jels60/config.h
new file mode 100644
index 000000000000..0157da213c17
--- /dev/null
+++ b/keyboards/jels/jels60/config.h
@@ -0,0 +1,49 @@
+ /* Copyright 2022 Joah Nelson (Jels)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor paramater */
+#define VENDOR_ID 0x006A //Jels (J)
+#define PRODUCT_ID 0x0060 //Jels 60
+#define DEVICE_VER 0x0001
+#define MANUFACTURER jels
+#define PRODUCT jels60
+
+/* Define Matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*Define Matrix Pins */
+#define MATRIX_ROW_PINS {B3, D1, F0, F4, F1}
+#define MATRIX_COL_PINS {E6, C7, B4, D7, D6, D4, D5, D3, F5, F6, F7, C6, B6, B5}
+
+// Caps lock Pin
+#define LED_CAPS_LOCK_PIN B7
+
+/* 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
+
diff --git a/keyboards/jels/jels60/info.json b/keyboards/jels/jels60/info.json
new file mode 100644
index 000000000000..b958bb6905b7
--- /dev/null
+++ b/keyboards/jels/jels60/info.json
@@ -0,0 +1,344 @@
+{
+ "keyboard_name": "Jels60",
+ "url": "",
+ "maintainer": "Jels",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ { "label": "ESC", "x": 0, "y": 0 },
+ { "label": "1", "x": 1, "y": 0 },
+ { "label": "2", "x": 2, "y": 0 },
+ { "label": "3", "x": 3, "y": 0 },
+ { "label": "4", "x": 4, "y": 0 },
+ { "label": "5", "x": 5, "y": 0 },
+ { "label": "6", "x": 6, "y": 0 },
+ { "label": "7", "x": 7, "y": 0 },
+ { "label": "8", "x": 8, "y": 0 },
+ { "label": "9", "x": 9, "y": 0 },
+ { "label": "0", "x": 10, "y": 0 },
+ { "label": "-", "x": 11, "y": 0 },
+ { "label": "=", "x": 12, "y": 0 },
+ { "label": "Bksp", "x": 13, "y": 0 },
+ { "label": "~", "x": 14, "y": 0 },
+ { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "x": 1.5, "y": 1 },
+ { "label": "W", "x": 2.5, "y": 1 },
+ { "label": "E", "x": 3.5, "y": 1 },
+ { "label": "R", "x": 4.5, "y": 1 },
+ { "label": "T", "x": 5.5, "y": 1 },
+ { "label": "Y", "x": 6.5, "y": 1 },
+ { "label": "U", "x": 7.5, "y": 1 },
+ { "label": "I", "x": 8.5, "y": 1 },
+ { "label": "O", "x": 9.5, "y": 1 },
+ { "label": "P", "x": 10.5, "y": 1 },
+ { "label": "{", "x": 11.5, "y": 1 },
+ { "label": "}", "x": 12.5, "y": 1 },
+ { "label": "|", "x": 13.5, "y": 1, "w": 1.5 },
+ { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "x": 1.75, "y": 2 },
+ { "label": "S", "x": 2.75, "y": 2 },
+ { "label": "D", "x": 3.75, "y": 2 },
+ { "label": "F", "x": 4.75, "y": 2 },
+ { "label": "G", "x": 5.75, "y": 2 },
+ { "label": "H", "x": 6.75, "y": 2 },
+ { "label": "J", "x": 7.75, "y": 2 },
+ { "label": "K", "x": 8.75, "y": 2 },
+ { "label": "L", "x": 9.75, "y": 2 },
+ { "label": ":", "x": 10.75, "y": 2 },
+ { "label": "\"", "x": 11.75, "y": 2 },
+ { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
+ { "label": "Shift", "x": 0, "y": 3, "w": 1.25 },
+ { "label": "|", "x": 1.25, "y": 3 },
+ { "label": "Z", "x": 2.25, "y": 3 },
+ { "label": "X", "x": 3.25, "y": 3 },
+ { "label": "C", "x": 4.25, "y": 3 },
+ { "label": "V", "x": 5.25, "y": 3 },
+ { "label": "B", "x": 6.25, "y": 3 },
+ { "label": "N", "x": 7.25, "y": 3 },
+ { "label": "M", "x": 8.25, "y": 3 },
+ { "label": "<", "x": 9.25, "y": 3 },
+ { "label": ">", "x": 10.25, "y": 3 },
+ { "label": "?", "x": 11.25, "y": 3 },
+ { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
+ { "x": 14, "y": 3 },
+ { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
+ { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
+ { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
+ { "x": 3.75, "y": 4, "w": 2.75 },
+ { "x": 6.5, "y": 4, "w": 1 },
+ { "x": 7.5, "y": 4, "w": 2.5 },
+ { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
+ { "label": "Win", "x": 11.25, "y": 4, "w": 1.25 },
+ { "label": "Menu", "x": 12.5, "y": 4, "w": 1.25 },
+ { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
+ ]
+ },
+ "LAYOUT_ansi": {
+ "layout": [
+ { "label": "ESC", "x": 0, "y": 0 },
+ { "label": "1", "x": 1, "y": 0 },
+ { "label": "2", "x": 2, "y": 0 },
+ { "label": "3", "x": 3, "y": 0 },
+ { "label": "4", "x": 4, "y": 0 },
+ { "label": "5", "x": 5, "y": 0 },
+ { "label": "6", "x": 6, "y": 0 },
+ { "label": "7", "x": 7, "y": 0 },
+ { "label": "8", "x": 8, "y": 0 },
+ { "label": "9", "x": 9, "y": 0 },
+ { "label": "0", "x": 10, "y": 0 },
+ { "label": "-", "x": 11, "y": 0 },
+ { "label": "=", "x": 12, "y": 0 },
+ { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
+ { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "x": 1.5, "y": 1 },
+ { "label": "W", "x": 2.5, "y": 1 },
+ { "label": "E", "x": 3.5, "y": 1 },
+ { "label": "R", "x": 4.5, "y": 1 },
+ { "label": "T", "x": 5.5, "y": 1 },
+ { "label": "Y", "x": 6.5, "y": 1 },
+ { "label": "U", "x": 7.5, "y": 1 },
+ { "label": "I", "x": 8.5, "y": 1 },
+ { "label": "O", "x": 9.5, "y": 1 },
+ { "label": "P", "x": 10.5, "y": 1 },
+ { "label": "{", "x": 11.5, "y": 1 },
+ { "label": "}", "x": 12.5, "y": 1 },
+ { "label": "|", "x": 13.5, "y": 1, "w": 1.5 },
+ { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "x": 1.75, "y": 2 },
+ { "label": "S", "x": 2.75, "y": 2 },
+ { "label": "D", "x": 3.75, "y": 2 },
+ { "label": "F", "x": 4.75, "y": 2 },
+ { "label": "G", "x": 5.75, "y": 2 },
+ { "label": "H", "x": 6.75, "y": 2 },
+ { "label": "J", "x": 7.75, "y": 2 },
+ { "label": "K", "x": 8.75, "y": 2 },
+ { "label": "L", "x": 9.75, "y": 2 },
+ { "label": ":", "x": 10.75, "y": 2 },
+ { "label": "\"", "x": 11.75, "y": 2 },
+ { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
+ { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
+ { "label": "Z", "x": 2.25, "y": 3 },
+ { "label": "X", "x": 3.25, "y": 3 },
+ { "label": "C", "x": 4.25, "y": 3 },
+ { "label": "V", "x": 5.25, "y": 3 },
+ { "label": "B", "x": 6.25, "y": 3 },
+ { "label": "N", "x": 7.25, "y": 3 },
+ { "label": "M", "x": 8.25, "y": 3 },
+ { "label": "<", "x": 9.25, "y": 3 },
+ { "label": ">", "x": 10.25, "y": 3 },
+ { "label": "?", "x": 11.25, "y": 3 },
+ { "label": "Shift", "x": 12.25, "y": 3, "w": 2.75 },
+ { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
+ { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
+ { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
+ { "x": 3.75, "y": 4, "w": 6.25 },
+ { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
+ { "label": "Win", "x": 11.25, "y": 4, "w": 1.25 },
+ { "label": "Menu", "x": 12.5, "y": 4, "w": 1.25 },
+ { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
+ ]
+ },
+ "LAYOUT_split_space": {
+ "layout": [
+ { "label": "ESC", "x": 0, "y": 0 },
+ { "label": "1", "x": 1, "y": 0 },
+ { "label": "2", "x": 2, "y": 0 },
+ { "label": "3", "x": 3, "y": 0 },
+ { "label": "4", "x": 4, "y": 0 },
+ { "label": "5", "x": 5, "y": 0 },
+ { "label": "6", "x": 6, "y": 0 },
+ { "label": "7", "x": 7, "y": 0 },
+ { "label": "8", "x": 8, "y": 0 },
+ { "label": "9", "x": 9, "y": 0 },
+ { "label": "0", "x": 10, "y": 0 },
+ { "label": "-", "x": 11, "y": 0 },
+ { "label": "=", "x": 12, "y": 0 },
+ { "label": "Bksp", "x": 13, "y": 0 },
+ { "label": "~", "x": 14, "y": 0 },
+ { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "x": 1.5, "y": 1 },
+ { "label": "W", "x": 2.5, "y": 1 },
+ { "label": "E", "x": 3.5, "y": 1 },
+ { "label": "R", "x": 4.5, "y": 1 },
+ { "label": "T", "x": 5.5, "y": 1 },
+ { "label": "Y", "x": 6.5, "y": 1 },
+ { "label": "U", "x": 7.5, "y": 1 },
+ { "label": "I", "x": 8.5, "y": 1 },
+ { "label": "O", "x": 9.5, "y": 1 },
+ { "label": "P", "x": 10.5, "y": 1 },
+ { "label": "{", "x": 11.5, "y": 1 },
+ { "label": "}", "x": 12.5, "y": 1 },
+ { "label": "|", "x": 13.5, "y": 1, "w": 1.5 },
+ { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "x": 1.75, "y": 2 },
+ { "label": "S", "x": 2.75, "y": 2 },
+ { "label": "D", "x": 3.75, "y": 2 },
+ { "label": "F", "x": 4.75, "y": 2 },
+ { "label": "G", "x": 5.75, "y": 2 },
+ { "label": "H", "x": 6.75, "y": 2 },
+ { "label": "J", "x": 7.75, "y": 2 },
+ { "label": "K", "x": 8.75, "y": 2 },
+ { "label": "L", "x": 9.75, "y": 2 },
+ { "label": ":", "x": 10.75, "y": 2 },
+ { "label": "\"", "x": 11.75, "y": 2 },
+ { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
+ { "label": "Shift", "x": 0, "y": 3, "w": 1.25 },
+ { "label": "|", "x": 1.25, "y": 3 },
+ { "label": "Z", "x": 2.25, "y": 3 },
+ { "label": "X", "x": 3.25, "y": 3 },
+ { "label": "C", "x": 4.25, "y": 3 },
+ { "label": "V", "x": 5.25, "y": 3 },
+ { "label": "B", "x": 6.25, "y": 3 },
+ { "label": "N", "x": 7.25, "y": 3 },
+ { "label": "M", "x": 8.25, "y": 3 },
+ { "label": "<", "x": 9.25, "y": 3 },
+ { "label": ">", "x": 10.25, "y": 3 },
+ { "label": "?", "x": 11.25, "y": 3 },
+ { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
+ { "x": 14, "y": 3 },
+ { "label": "Ctrl", "x": 0, "y": 4, "w": 1.5 },
+ { "label": "Win", "x": 1.5, "y": 4, "w": 1 },
+ { "label": "Alt", "x": 2.5, "y": 4, "w": 1.5 },
+ { "x": 4, "y": 4, "w": 2.75 },
+ { "x": 6.75, "y": 4, "w": 1.5 },
+ { "x": 8.25, "y": 4, "w": 2.75 },
+ { "label": "Alt", "x": 11, "y": 4, "w": 1.5 },
+ { "label": "Win", "x": 12.5, "y": 4, "w": 1 },
+ { "label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5 }
+ ]
+ },
+ "LAYOUT_tsangan_split_bs": {
+ "layout": [
+ { "label": "ESC", "x": 0, "y": 0 },
+ { "label": "1", "x": 1, "y": 0 },
+ { "label": "2", "x": 2, "y": 0 },
+ { "label": "3", "x": 3, "y": 0 },
+ { "label": "4", "x": 4, "y": 0 },
+ { "label": "5", "x": 5, "y": 0 },
+ { "label": "6", "x": 6, "y": 0 },
+ { "label": "7", "x": 7, "y": 0 },
+ { "label": "8", "x": 8, "y": 0 },
+ { "label": "9", "x": 9, "y": 0 },
+ { "label": "0", "x": 10, "y": 0 },
+ { "label": "-", "x": 11, "y": 0 },
+ { "label": "=", "x": 12, "y": 0 },
+ { "label": "Bksp", "x": 13, "y": 0 },
+ { "label": "~", "x": 14, "y": 0 },
+ { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "x": 1.5, "y": 1 },
+ { "label": "W", "x": 2.5, "y": 1 },
+ { "label": "E", "x": 3.5, "y": 1 },
+ { "label": "R", "x": 4.5, "y": 1 },
+ { "label": "T", "x": 5.5, "y": 1 },
+ { "label": "Y", "x": 6.5, "y": 1 },
+ { "label": "U", "x": 7.5, "y": 1 },
+ { "label": "I", "x": 8.5, "y": 1 },
+ { "label": "O", "x": 9.5, "y": 1 },
+ { "label": "P", "x": 10.5, "y": 1 },
+ { "label": "{", "x": 11.5, "y": 1 },
+ { "label": "}", "x": 12.5, "y": 1 },
+ { "label": "|", "x": 13.5, "y": 1, "w": 1.5 },
+ { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "x": 1.75, "y": 2 },
+ { "label": "S", "x": 2.75, "y": 2 },
+ { "label": "D", "x": 3.75, "y": 2 },
+ { "label": "F", "x": 4.75, "y": 2 },
+ { "label": "G", "x": 5.75, "y": 2 },
+ { "label": "H", "x": 6.75, "y": 2 },
+ { "label": "J", "x": 7.75, "y": 2 },
+ { "label": "K", "x": 8.75, "y": 2 },
+ { "label": "L", "x": 9.75, "y": 2 },
+ { "label": ":", "x": 10.75, "y": 2 },
+ { "label": "\"", "x": 11.75, "y": 2 },
+ { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
+ { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
+ { "label": "Z", "x": 2.25, "y": 3 },
+ { "label": "X", "x": 3.25, "y": 3 },
+ { "label": "C", "x": 4.25, "y": 3 },
+ { "label": "V", "x": 5.25, "y": 3 },
+ { "label": "B", "x": 6.25, "y": 3 },
+ { "label": "N", "x": 7.25, "y": 3 },
+ { "label": "M", "x": 8.25, "y": 3 },
+ { "label": "<", "x": 9.25, "y": 3 },
+ { "label": ">", "x": 10.25, "y": 3 },
+ { "label": "?", "x": 11.25, "y": 3 },
+ { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
+ { "x": 14, "y": 3 },
+ { "label": "Ctrl", "x": 0, "y": 4, "w": 1.5 },
+ { "label": "Win", "x": 1.5, "y": 4, "w": 1 },
+ { "label": "Alt", "x": 2.5, "y": 4, "w": 1.5 },
+ { "x": 4, "y": 4, "w": 7 },
+ { "label": "Alt", "x": 11, "y": 4, "w": 1.5 },
+ { "label": "Win", "x": 12.5, "y": 4, "w": 1 },
+ { "label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5 }
+ ]
+ },
+ "LAYOUT_iso": {
+ "layout": [
+ { "label": "ESC", "x": 0, "y": 0 },
+ { "label": "1", "x": 1, "y": 0 },
+ { "label": "2", "x": 2, "y": 0 },
+ { "label": "3", "x": 3, "y": 0 },
+ { "label": "4", "x": 4, "y": 0 },
+ { "label": "5", "x": 5, "y": 0 },
+ { "label": "6", "x": 6, "y": 0 },
+ { "label": "7", "x": 7, "y": 0 },
+ { "label": "8", "x": 8, "y": 0 },
+ { "label": "9", "x": 9, "y": 0 },
+ { "label": "0", "x": 10, "y": 0 },
+ { "label": "-", "x": 11, "y": 0 },
+ { "label": "=", "x": 12, "y": 0 },
+ { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
+ { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "x": 1.5, "y": 1 },
+ { "label": "W", "x": 2.5, "y": 1 },
+ { "label": "E", "x": 3.5, "y": 1 },
+ { "label": "R", "x": 4.5, "y": 1 },
+ { "label": "T", "x": 5.5, "y": 1 },
+ { "label": "Y", "x": 6.5, "y": 1 },
+ { "label": "U", "x": 7.5, "y": 1 },
+ { "label": "I", "x": 8.5, "y": 1 },
+ { "label": "O", "x": 9.5, "y": 1 },
+ { "label": "P", "x": 10.5, "y": 1 },
+ { "label": "{", "x": 11.5, "y": 1 },
+ { "label": "}", "x": 12.5, "y": 1 },
+ { "label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h":2 },
+ { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "x": 1.75, "y": 2 },
+ { "label": "S", "x": 2.75, "y": 2 },
+ { "label": "D", "x": 3.75, "y": 2 },
+ { "label": "F", "x": 4.75, "y": 2 },
+ { "label": "G", "x": 5.75, "y": 2 },
+ { "label": "H", "x": 6.75, "y": 2 },
+ { "label": "J", "x": 7.75, "y": 2 },
+ { "label": "K", "x": 8.75, "y": 2 },
+ { "label": "L", "x": 9.75, "y": 2 },
+ { "label": ":", "x": 10.75, "y": 2 },
+ { "label": "\"", "x": 11.75, "y": 2 },
+ { "label": "|", "x": 12.75, "y": 2 },
+ { "label": "Shift", "x": 0, "y": 3, "w": 1.25 },
+ { "label": "|", "x": 1.25, "y": 3 },
+ { "label": "Z", "x": 2.25, "y": 3 },
+ { "label": "X", "x": 3.25, "y": 3 },
+ { "label": "C", "x": 4.25, "y": 3 },
+ { "label": "V", "x": 5.25, "y": 3 },
+ { "label": "B", "x": 6.25, "y": 3 },
+ { "label": "N", "x": 7.25, "y": 3 },
+ { "label": "M", "x": 8.25, "y": 3 },
+ { "label": "<", "x": 9.25, "y": 3 },
+ { "label": ">", "x": 10.25, "y": 3 },
+ { "label": "?", "x": 11.25, "y": 3 },
+ { "label": "Shift", "x": 12.25, "y": 3, "w": 2.75 },
+ { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
+ { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
+ { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
+ { "x": 3.75, "y": 4, "w": 6.25 },
+ { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
+ { "label": "Win", "x": 11.25, "y": 4, "w": 1.25 },
+ { "label": "Menu", "x": 12.5, "y": 4, "w": 1.25 },
+ { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
+ ]
+ }
+
+ }
+}
diff --git a/keyboards/jels/jels60/jels60.c b/keyboards/jels/jels60/jels60.c
new file mode 100644
index 000000000000..6e8fd58da874
--- /dev/null
+++ b/keyboards/jels/jels60/jels60.c
@@ -0,0 +1,21 @@
+ /* Copyright 2022 Joah Nelson (Jels)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "jels60.h"
+
+
+
+
diff --git a/keyboards/jels/jels60/jels60.h b/keyboards/jels/jels60/jels60.h
new file mode 100644
index 000000000000..f8bc296e1a68
--- /dev/null
+++ b/keyboards/jels/jels60/jels60.h
@@ -0,0 +1,95 @@
+/* copyright 2022 Joah Nelson (Jels)
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERAHANTABILITY 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 .
+*/
+
+#pragma once
+
+#include "quantum.h"
+
+#define ____ KC_NO
+
+
+#define LAYOUT_all( \
+ K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13, K1x13, \
+ K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K2x13, \
+ K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, \
+ K3x0, K3x1, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13, \
+ K4x0, K4x1, K4x2, K4x4, K4x6, K4x9, K4x10, K4x11, K4x12, K4x13 \
+){ \
+ {K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13}, \
+ {K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K1x13}, \
+ {K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, K2x13}, \
+ {K3x0, K3x1, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13}, \
+ {K4x0, K4x1, K4x2, ____, K4x4, ____, K4x6, ____, ____, K4x9, K4x10, K4x11, K4x12, K4x13} \
+}
+
+#define LAYOUT_ansi( \
+ K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13, \
+ K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K2x13, \
+ K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, \
+ K3x0, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, \
+ K4x0, K4x1, K4x2, K4x6, K4x10, K4x11, K4x12, K4x13 \
+){ \
+ {K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13}, \
+ {K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, ____ }, \
+ {K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, K2x13}, \
+ {K3x0, ____, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, ____ }, \
+ {K4x0, K4x1, K4x2, ____, ____, ____, K4x6, ____, ____, ____, K4x10, K4x11, K4x12, K4x13} \
+}
+
+#define LAYOUT_split_space( \
+ K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13, K1x13, \
+ K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K2x13, \
+ K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, \
+ K3x0, K3x1, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13, \
+ K4x0, K4x1, K4x2, K4x4, K4x6, K4x9, K4x11, K4x12, K4x13 \
+){ \
+ {K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13}, \
+ {K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K1x13}, \
+ {K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, K2x13}, \
+ {K3x0, K3x1, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13}, \
+ {K4x0, K4x1, K4x2, ____, K4x4, ____, K4x6, ____, ____, K4x9, ____, K4x11, K4x12, K4x13} \
+}
+
+#define LAYOUT_tsangan_split_bs( \
+ K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13, K1x13, \
+ K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K2x13, \
+ K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, \
+ K3x0, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13, \
+ K4x0, K4x1, K4x2, K4x6, K4x10, K4x12, K4x13 \
+){ \
+ {K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13}, \
+ {K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K1x13}, \
+ {K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, K2x13}, \
+ {K3x0, ____, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13}, \
+ {K4x0, K4x1, K4x2, ____, ____, ____, K4x6, ____, ____, ____, K4x10, ____, K4x12, K4x13} \
+}
+
+#define LAYOUT_iso( \
+ K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13, \
+ K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, K2x12, \
+ K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x13, \
+ K3x0, K3x1, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13, \
+ K4x0, K4x1, K4x2, K4x6, K4x10, K4x12, K4x13 \
+){ \
+ {K0x0, K0x1, K0x2, K0x3, K0x4, K0x5, K0x6, K0x7, K0x8, K0x9, K0x10, K0x11, K0x12, K0x13}, \
+ {K1x0, K1x1, K1x2, K1x3, K1x4, K1x5, K1x6, K1x7, K1x8, K1x9, K1x10, K1x11, K1x12, ____ }, \
+ {K2x0, K2x1, K2x2, K2x3, K2x4, K2x5, K2x6, K2x7, K2x8, K2x9, K2x10, K2x11, K2x12, K2x13}, \
+ {K3x0, K3x1, K3x2, K3x3, K3x4, K3x5, K3x6, K3x7, K3x8, K3x9, K3x10, K3x11, K3x12, K3x13}, \
+ {K4x0, K4x1, K4x2, ____, ____, ____, K4x6, ____, ____, ____, K4x10, ____, K4x12, K4x13} \
+}
+
+
+
diff --git a/keyboards/jels/jels60/keymaps/default/keymap.c b/keyboards/jels/jels60/keymaps/default/keymap.c
new file mode 100644
index 000000000000..072ae3e059fe
--- /dev/null
+++ b/keyboards/jels/jels60/keymaps/default/keymap.c
@@ -0,0 +1,50 @@
+ /* Copyright 2022 Joah Nelson (Jels)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+//base layer
+[0] = LAYOUT_all(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL
+),
+[1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+[2] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+[3] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/jels/jels60/keymaps/via/keymap.c b/keyboards/jels/jels60/keymaps/via/keymap.c
new file mode 100644
index 000000000000..072ae3e059fe
--- /dev/null
+++ b/keyboards/jels/jels60/keymaps/via/keymap.c
@@ -0,0 +1,50 @@
+ /* Copyright 2022 Joah Nelson (Jels)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+//base layer
+[0] = LAYOUT_all(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL
+),
+[1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+[2] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+[3] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/jels/jels60/keymaps/via/rules.mk b/keyboards/jels/jels60/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/jels/jels60/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/jels/jels60/readme.md b/keyboards/jels/jels60/readme.md
new file mode 100644
index 000000000000..0b72d3e346d0
--- /dev/null
+++ b/keyboards/jels/jels60/readme.md
@@ -0,0 +1,23 @@
+# Jels60
+
+![jels60](https://i.imgur.com/3Ec4YZNh.png)
+
+A 60% PCB
+
+* Keyboard Maintainer: [Jels](https://github.com/Jels02)
+* Hardware Supported: Jels60 PCB
+* Hardware Availabililty: Limited Group buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make jels/jels60:default
+
+Flashing example for this keyboard:
+
+ make jels/jels60:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+* **Bootmagic reset**: Hold down the top left key (ESC/Tilde) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/jels/jels60/rules.mk b/keyboards/jels/jels60/rules.mk
new file mode 100644
index 000000000000..476cf49f278e
--- /dev/null
+++ b/keyboards/jels/jels60/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 8fe3864fe7601a7e6572e7db680775edeff771ac Mon Sep 17 00:00:00 2001
From: Spencer Peterson
Date: Sun, 13 Mar 2022 14:49:47 -0700
Subject: [PATCH 014/221] [Keyboard] Add "Uno" rev2 (#14071)
* [Keyboard] Add "Uno" rev2
Adds support for the second revision of Uno, courtesy of @Snipeye.
* Update keyboards/uno/rev2/rules.mk
* Update keyboards/uno/rev1/rules.mk
* Update keyboards/uno/uno.h
* Update keyboards/uno/rev2/rules.mk
* Update keyboards/uno/rev1/rules.mk
* Update keyboards/uno/keymaps/demo/keymap.c
* Update keyboards/uno/keymaps/demo/keymap.c
* Update keyboards/uno/keymaps/demo/keymap.c
* Update keyboards/uno/rev2/rules.mk
* Update keyboards/uno/rev1/rules.mk
* Align rules.mk comments
* Update keyboards/uno/info.json
* Update keyboards/uno/rev1/config.h
* Update keyboards/uno/rev2/config.h
* Update keyboards/uno/rev2/config.h
* Update keyboards/uno/rev2/config.h
* Update keyboards/uno/rev1/config.h
---
keyboards/uno/config.h | 54 +---------
keyboards/uno/keymaps/copypasta/keymap.c | 85 +++++++++++++++
keyboards/uno/keymaps/copypasta/readme.md | 4 +
keyboards/uno/keymaps/default/keymap.c | 89 +++++-----------
keyboards/uno/keymaps/default/readme.md | 5 +-
keyboards/uno/keymaps/demo/keymap.c | 123 ++++++++++++++++++++++
keyboards/uno/keymaps/demo/readme.md | 4 +
keyboards/uno/readme.md | 35 ++++--
keyboards/uno/rev1/config.h | 74 +++++++++++++
keyboards/uno/rev1/rev1.h | 25 +++++
keyboards/uno/rev1/rules.mk | 18 ++++
keyboards/uno/rev2/config.h | 49 +++++++++
keyboards/uno/rev2/rev2.h | 25 +++++
keyboards/uno/rev2/rules.mk | 19 ++++
keyboards/uno/rules.mk | 19 +---
keyboards/uno/uno.h | 11 +-
16 files changed, 489 insertions(+), 150 deletions(-)
create mode 100644 keyboards/uno/keymaps/copypasta/keymap.c
create mode 100644 keyboards/uno/keymaps/copypasta/readme.md
create mode 100644 keyboards/uno/keymaps/demo/keymap.c
create mode 100644 keyboards/uno/keymaps/demo/readme.md
create mode 100644 keyboards/uno/rev1/config.h
create mode 100644 keyboards/uno/rev1/rev1.h
create mode 100644 keyboards/uno/rev1/rules.mk
create mode 100644 keyboards/uno/rev2/config.h
create mode 100644 keyboards/uno/rev2/rev2.h
create mode 100644 keyboards/uno/rev2/rules.mk
diff --git a/keyboards/uno/config.h b/keyboards/uno/config.h
index 1cae17f50acf..0128ee2d5de2 100644
--- a/keyboards/uno/config.h
+++ b/keyboards/uno/config.h
@@ -13,57 +13,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-#pragma once
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0xACC8
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Broekhuijsen
-#define PRODUCT Uno
-
-/* key matrix size */
-#define MATRIX_ROWS 1
-#define MATRIX_COLS 1
-/* Uno default pinout */
-#define DIRECT_PINS { \
- { B6 } \
-}
-#define UNUSED_PINS
-
-#define RGB_DI_PIN F6
-#ifdef RGB_DI_PIN
-#define RGBLED_NUM 1
-// #define RGBLIGHT_HUE_STEP 32
-// #define RGBLIGHT_SAT_STEP 32
-// #define RGBLIGHT_VAL_STEP 32
-// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
-// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-// /*== all animations enable ==*/
-#define RGBLIGHT_ANIMATIONS
-// /*== or choose animations ==*/
-// #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
-// /*== customize breathing effect ==*/
-// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
-// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
-// /*==== use exp() and sin() ====*/
-// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
-// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
-#endif
+#pragma once
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
+#include "config_common.h"
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+// See rev1/config.h and rev2/config.h to configure your uno.
diff --git a/keyboards/uno/keymaps/copypasta/keymap.c b/keyboards/uno/keymaps/copypasta/keymap.c
new file mode 100644
index 000000000000..74e5f62fc540
--- /dev/null
+++ b/keyboards/uno/keymaps/copypasta/keymap.c
@@ -0,0 +1,85 @@
+/* Copyright 2020 Snipeye
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum uno_keycode
+{
+ UNO = SAFE_RANGE
+};
+
+static uint16_t pressTimer = 0xFFFF;
+#define CUSTOM_LONGPRESS 1000
+#define PASTA_COUNT 4
+
+const char *pasta[PASTA_COUNT] = {
+ "Hey - I'm Uno... V2. This time, I have uno more features: I support a rotary encoder, too. That's it. That's the only difference.",
+ "Did you ever hear the tragedy of Darth Plagueis the Wise? I thought not. It's not a story the Jedi would tell you. It's a Sith legend. Darth Plagueis was a Dark Lord of the Sith, so powerful and so wise he could use the Force to influence the midichlorians to create life... He had such a knowledge of the dark side that he could even keep the ones he cared about from dying. The dark side of the Force is a pathway to many abilities some consider to be unnatural. He became so powerful... the only thing he was afraid of was losing his power, which eventually, of course, he did. Unfortunately, he taught his apprentice everything he knew, then his apprentice killed him in his sleep. Ironic, he could save others from death, but not himself.",
+ "The intent is to provide players with a sense of pride and accomplishment for unlocking different heroes. As for cost, we selected initial values based upon data from the Open Beta and other adjustments made to milestone rewards before launch. Among other things, we're looking at average per-player credit earn rates on a daily basis, and we'll be making constant adjustments to ensure that players have challenges that are compelling, rewarding, and of course attainable via gameplay. We appreciate the candid feedback, and the passion the community has put forth around the current topics here on Reddit, our forums and across numerous social media outlets. Our team will continue to make changes and monitor community feedback and update everyone as soon and as often as we can.",
+ "The FitnessGram Pacer Test is a multistage aerobic capacity test that progressively gets more difficult as it continues. The 20 meter pacer test will begin in 30 seconds. Line up at the start. The running speed starts slowly, but gets faster each minute after you hear this signal. [beep] A single lap should be completed each time you hear this sound. [ding] Remember to run in a straight line, and run as long as possible. The second time you fail to complete a lap before the sound, your test is over. The test will begin on the word start. On your mark, get ready, start.",
+};
+
+uint8_t pastaIndex = 0;
+
+enum encoder_names {
+ _ENCODER,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ UNO
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case UNO:
+ if (record->event.pressed) {
+ pressTimer = timer_read();
+ } else {
+ uint16_t timeElapsed = timer_elapsed(pressTimer);
+ if (timeElapsed < CUSTOM_LONGPRESS) {
+ send_string(pasta[pastaIndex]);
+ } else {
+ reset_keyboard();
+ }
+ }
+ break;
+ }
+ return false;
+}
+
+void keyboard_post_init_user(void) {
+ rgblight_enable_noeeprom();
+ rgblight_sethsv_noeeprom(0, 255, 255);
+ rgblight_mode_noeeprom(1);
+ //rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == _ENCODER) { /* First encoder */
+ if (clockwise) {
+ pastaIndex++;
+ pastaIndex %= PASTA_COUNT;
+ } else {
+ pastaIndex += PASTA_COUNT;
+ pastaIndex--;
+ pastaIndex %= PASTA_COUNT;
+ }
+ rgblight_sethsv_noeeprom((255/PASTA_COUNT)*pastaIndex, 255, 255);
+ rgblight_mode_noeeprom(1);
+ }
+}
diff --git a/keyboards/uno/keymaps/copypasta/readme.md b/keyboards/uno/keymaps/copypasta/readme.md
new file mode 100644
index 000000000000..1ad009c16c58
--- /dev/null
+++ b/keyboards/uno/keymaps/copypasta/readme.md
@@ -0,0 +1,4 @@
+# A copypasta keymap for uno
+![Picture](https://i.imgur.com/OqPyWbbl.jpg)
+
+[A demo of this keymap can be found here.](https://www.reddit.com/r/MechanicalKeyboards/comments/k7w1j1/qmk_is_a_pathway_to_many_abilities_some_consider/)
diff --git a/keyboards/uno/keymaps/default/keymap.c b/keyboards/uno/keymaps/default/keymap.c
index bb19ea7ddb9d..43c885c800f1 100644
--- a/keyboards/uno/keymaps/default/keymap.c
+++ b/keyboards/uno/keymaps/default/keymap.c
@@ -13,6 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
+
#include QMK_KEYBOARD_H
enum uno_keycode
@@ -20,20 +21,9 @@ enum uno_keycode
UNO = SAFE_RANGE
};
-static uint16_t pressTimer = 0xFFFF;
-#define CUSTOM_LONGPRESS 150
-#define CUSTOM_LONGERPRESS 750
-#define CUSTOM_STRING "I can put a whole buncha text in here and type it all with a single keypress."
-#define RESET_LENGTH 3000
-const uint8_t PROGMEM RGBLED_RAINBOW_MOOD_INTERVALS[] = { 10, 25, 50 };
-
-char stringToSend[2] = "a";
-char maxLetter = 'z';
-
-uint8_t presetCounter = 0;
-
-#define COUNTER X_A
-
+enum encoder_names {
+ _ENCODER,
+};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
@@ -44,59 +34,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case UNO:
- if (record->event.pressed) {
- pressTimer = timer_read();
- } else {
- uint16_t timeElapsed = timer_elapsed(pressTimer);
- switch (presetCounter) {
- case 0:
- SEND_STRING(SS_LCMD("n"));
- break;
- case 1:
- SEND_STRING("Hello!");
- break;
- case 2:
- SEND_STRING(SS_TAP(X_ENTER)SS_TAP(X_ENTER)"I am uno!");
- break;
- case 3:
- SEND_STRING(SS_TAP(X_ENTER)SS_TAP(X_ENTER)"I can do all sorts of useless things!");
- break;
- case 4:
- SEND_STRING(SS_TAP(X_ENTER)SS_TAP(X_ENTER)"And I have a built-in RGB LED!"SS_TAP(X_ENTER)SS_TAP(X_ENTER)SS_TAP(X_ENTER));
- rgblight_sethsv_noeeprom(255, 255, 255);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
- break;
- default:
- if (timeElapsed < CUSTOM_LONGPRESS) {
- // Normal press. We're going to send the current letter and increment the counter.
- SEND_STRING(SS_TAP(X_BSPACE));
- send_string(stringToSend);
- stringToSend[0]++;
- if (stringToSend[0] > maxLetter) {
- stringToSend[0] = 'a';
- }
- } else if (timeElapsed < CUSTOM_LONGERPRESS) {
- // Long press, confirm the current letter, reset counter
- stringToSend[0] = 'a';
- send_string(stringToSend);
- } else if (timeElapsed < RESET_LENGTH) {
- // Longer press, display macro.
- SEND_STRING(CUSTOM_STRING);
- } else {
- reset_keyboard();
- }
- presetCounter--;
- break;
- }
- presetCounter++;
- }
- break;
+ if (record->event.pressed) {
+ SEND_STRING("Hello!");
+ }
+ break;
+ return false;
}
- return false;
+ return true;
}
void keyboard_post_init_user(void) {
rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(0, 0, 0);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ rgblight_sethsv_noeeprom(255, 255, 255);
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
}
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == _ENCODER) { /* First encoder */
+ if (clockwise) {
+ tap_code(KC_A);
+ } else {
+ tap_code(KC_B);
+ }
+ return false;
+ }
+ return true;
+}
+
diff --git a/keyboards/uno/keymaps/default/readme.md b/keyboards/uno/keymaps/default/readme.md
index 53b762f878fd..d783a80accef 100644
--- a/keyboards/uno/keymaps/default/readme.md
+++ b/keyboards/uno/keymaps/default/readme.md
@@ -1,4 +1,5 @@
# The default keymap for uno
-![Keymap](https://i.imgur.com/lCPZZpO.png)
+![Picture](https://i.imgur.com/OqPyWbbl.jpg)
-The 'Macro' key does a few things: If you open up textedit (was made for a mac), it sends "Command+n" for the first press to make a new document. It then types a few different messages, activates the RGB LED, and finally ends in a "scroll through the alphabet with a long press to confirm a certain character" keyboard mode.
+This keymap types "Hello!" when pressed and presses 'A' and 'B' when turning the
+encoder.
diff --git a/keyboards/uno/keymaps/demo/keymap.c b/keyboards/uno/keymaps/demo/keymap.c
new file mode 100644
index 000000000000..cd3c3dadef32
--- /dev/null
+++ b/keyboards/uno/keymaps/demo/keymap.c
@@ -0,0 +1,123 @@
+/* Copyright 2020 Snipeye
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum uno_keycode
+{
+ UNO = SAFE_RANGE
+};
+
+static uint16_t pressTimer = 0xFFFF;
+#define CUSTOM_LONGPRESS 150
+#define CUSTOM_LONGERPRESS 750
+#define CUSTOM_STRING "I can put a whole buncha text in here and type it all with a single keypress."
+#define RESET_LENGTH 3000
+const uint8_t PROGMEM RGBLED_RAINBOW_MOOD_INTERVALS[] = { 10, 25, 50 };
+
+char stringToSend[2] = "a";
+char maxLetter = 'z';
+
+uint8_t presetCounter = 0;
+
+#define COUNTER X_A
+
+enum encoder_names {
+ _ENCODER,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ UNO
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case UNO:
+ if (record->event.pressed) {
+ pressTimer = timer_read();
+ } else {
+ uint16_t timeElapsed = timer_elapsed(pressTimer);
+ switch (presetCounter) {
+ case 0:
+ SEND_STRING(SS_LCMD("n"));
+ break;
+ case 1:
+ SEND_STRING("Hello!");
+ break;
+ case 2:
+ SEND_STRING("\n\nI am uno!");
+ break;
+ case 3:
+ SEND_STRING("\n\nI can do all sorts of useless things!");
+ break;
+ case 4:
+ SEND_STRING("\n\nAnd I have a built-in RGB LED!\n\n\n");
+ rgblight_sethsv_noeeprom(255, 255, 255);
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
+ break;
+ default:
+ if (timeElapsed < CUSTOM_LONGPRESS) {
+ // Normal press. We're going to send the current letter and increment the counter.
+ SEND_STRING(SS_TAP(X_BSPACE));
+ send_string(stringToSend);
+ stringToSend[0]++;
+ if (stringToSend[0] > maxLetter) {
+ stringToSend[0] = 'a';
+ }
+ } else if (timeElapsed < CUSTOM_LONGERPRESS) {
+ // Long press, confirm the current letter, reset counter
+ stringToSend[0] = 'a';
+ send_string(stringToSend);
+ } else if (timeElapsed < RESET_LENGTH) {
+ // Longer press, display macro.
+ SEND_STRING(CUSTOM_STRING);
+ } else {
+ reset_keyboard();
+ }
+ presetCounter--;
+ break;
+ }
+ presetCounter++;
+ }
+ break;
+ }
+ return false;
+}
+
+void keyboard_post_init_user(void) {
+ rgblight_enable_noeeprom();
+ rgblight_sethsv_noeeprom(0, 0, 0);
+ rgblight_mode(1);
+ // Uncomment to enable rainbow mode when plugged in.
+ // Otherwise, the LED will be revealed after a few keypresses.
+ //rgblight_sethsv_noeeprom(255, 255, 255);
+ //rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
+}
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == _ENCODER) { /* First encoder */
+ if (clockwise) {
+ tap_code(KC_A);
+ } else {
+ tap_code(KC_B);
+ }
+ return false;
+ }
+ return true;
+}
+
diff --git a/keyboards/uno/keymaps/demo/readme.md b/keyboards/uno/keymaps/demo/readme.md
new file mode 100644
index 000000000000..ec9124786157
--- /dev/null
+++ b/keyboards/uno/keymaps/demo/readme.md
@@ -0,0 +1,4 @@
+# The demo keymap for uno
+![Picture](https://i.imgur.com/OqPyWbbl.jpg)
+
+[You can find a video of this keymap being demoed here](https://imgur.com/a/Z7G5Aam).
diff --git a/keyboards/uno/readme.md b/keyboards/uno/readme.md
index ce4cccd196f2..b60ef23e971d 100644
--- a/keyboards/uno/readme.md
+++ b/keyboards/uno/readme.md
@@ -1,19 +1,34 @@
-# uno
+# Uno
- ![uno](https://i.imgur.com/OqPyWbbl.jpg)
+![Uno](https://i.imgur.com/OqPyWbbl.jpg)
A 1-key, in-USB "board" for the lulz
- * Keyboard Maintainer: [Snipeye](https://github.com/Snipeye)
- * Hardware Supported: uno pcb
- * Hardware Availability: [GB](https://www.reddit.com/r/mechmarket/comments/gyijm7/gb_uno/)
+* Keyboard Maintainer: [Snipeye](https://github.com/Snipeye)
+* Hardware Availability: [keyhive.xyz](https://keyhive.xyz/shop/uno-single-key-keyboard)
- Make example for this keyboard (after setting up your build environment):
+There are two revisions of Uno. If your Uno supports a rotary encoder, use rev2.
+If it *does not* support a rotary encoder, use rev1. The following examples use
+`rev2` — be sure to change this if you are using `rev1`.
- make uno:default
+Make example for this keyboard (after setting up your build environment; make
+sure to change `rev2` to your Uno's version):
- Flashing example for this keyboard:
+ make uno/rev2:default
- make uno:default:flash
+Flashing example for this keyboard (change `rev2` to `rev1` if needed):
- 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).
+ make uno/rev2:default:flash
+
+If you prefer to use the `qmk` tool:
+
+ qmk compile -kb uno/rev2 -km default
+
+Create your own keymap with:
+
+ qmk new-keymap -kb uno/rev2
+
+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).
+
+### Credits
++ Everything by Snipeye
diff --git a/keyboards/uno/rev1/config.h b/keyboards/uno/rev1/config.h
new file mode 100644
index 000000000000..11c84ad2ab12
--- /dev/null
+++ b/keyboards/uno/rev1/config.h
@@ -0,0 +1,74 @@
+/* Copyright 2020 Snipeye
+ *
+ * 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 .
+ */
+
+#pragma once
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0xACC8
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Broekhuijsen
+#define PRODUCT Uno rev1
+
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_ANIMATIONS
+
+/* key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 1
+
+/* Uno default pinout */
+#define DIRECT_PINS { \
+ { B6 } \
+}
+#define UNUSED_PINS
+
+#ifdef RGBLIGHT_ENABLE
+#define RGB_DI_PIN F6
+#define RGBLED_NUM 1
+#endif
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 32
+// #define RGBLIGHT_SAT_STEP 32
+// #define RGBLIGHT_VAL_STEP 32
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #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
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
diff --git a/keyboards/uno/rev1/rev1.h b/keyboards/uno/rev1/rev1.h
new file mode 100644
index 000000000000..691bdd1dc397
--- /dev/null
+++ b/keyboards/uno/rev1/rev1.h
@@ -0,0 +1,25 @@
+/* Copyright 2020 Snipeye
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00 \
+) { \
+ { K00 } \
+}
diff --git a/keyboards/uno/rev1/rules.mk b/keyboards/uno/rev1/rules.mk
new file mode 100644
index 000000000000..7180be7497ae
--- /dev/null
+++ b/keyboards/uno/rev1/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/uno/rev2/config.h b/keyboards/uno/rev2/config.h
new file mode 100644
index 000000000000..37ea08c01740
--- /dev/null
+++ b/keyboards/uno/rev2/config.h
@@ -0,0 +1,49 @@
+/* Copyright 2020 Snipeye
+ *
+ * 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 .
+ */
+
+#pragma once
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0xACC8
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Broekhuijsen
+#define PRODUCT Uno rev2
+
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+
+/* ENCODER */
+#define ENCODERS_PAD_A { B2 }
+#define ENCODERS_PAD_B { B3 }
+
+/* key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 1
+
+/* Uno default pinout */
+#define DIRECT_PINS { \
+ { D0 } \
+}
+#define UNUSED_PINS
+
+#ifdef RGBLIGHT_ENABLE
+#define RGB_DI_PIN D1
+#define RGBLED_NUM 1
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
diff --git a/keyboards/uno/rev2/rev2.h b/keyboards/uno/rev2/rev2.h
new file mode 100644
index 000000000000..691bdd1dc397
--- /dev/null
+++ b/keyboards/uno/rev2/rev2.h
@@ -0,0 +1,25 @@
+/* Copyright 2020 Snipeye
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00 \
+) { \
+ { K00 } \
+}
diff --git a/keyboards/uno/rev2/rules.mk b/keyboards/uno/rev2/rules.mk
new file mode 100644
index 000000000000..1ce2738442b3
--- /dev/null
+++ b/keyboards/uno/rev2/rules.mk
@@ -0,0 +1,19 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
diff --git a/keyboards/uno/rules.mk b/keyboards/uno/rules.mk
index ebbb7bc613c7..367faedeaf99 100644
--- a/keyboards/uno/rules.mk
+++ b/keyboards/uno/rules.mk
@@ -1,18 +1 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = caterina
-
-# 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 = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
+DEFAULT_FOLDER = uno/rev1
diff --git a/keyboards/uno/uno.h b/keyboards/uno/uno.h
index 91d48d2ad50b..bb3248e293b3 100644
--- a/keyboards/uno/uno.h
+++ b/keyboards/uno/uno.h
@@ -13,12 +13,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
+
#pragma once
#include "quantum.h"
-#define LAYOUT( \
- K00 \
-) { \
- { K00 } \
-}
+#if defined(KEYBOARD_uno_rev1)
+# include "rev1.h"
+#elif defined(KEYBOARD_uno_rev2)
+# include "rev2.h"
+#endif
From df3770551a4dcbf8188a16453dd64fe1787f83d8 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Mon, 14 Mar 2022 10:46:13 +1100
Subject: [PATCH 015/221] USB-USB converter cleanup (#16618)
---
keyboards/converter/usb_usb/ble/ble.h | 2 +-
keyboards/converter/usb_usb/ble/config.h | 9 +-
keyboards/converter/usb_usb/ble/readme.md | 11 --
keyboards/converter/usb_usb/ble/rules.mk | 12 +--
keyboards/converter/usb_usb/config.h | 4 +-
keyboards/converter/usb_usb/custom_matrix.cpp | 40 +++----
keyboards/converter/usb_usb/hasu/hasu.h | 2 +-
keyboards/converter/usb_usb/main.c | 102 ------------------
.../converter/usb_usb/pro_micro/pro_micro.h | 2 +-
keyboards/converter/usb_usb/rules.mk | 18 ++--
keyboards/converter/usb_usb/usb_usb.h | 8 ++
11 files changed, 41 insertions(+), 169 deletions(-)
delete mode 100644 keyboards/converter/usb_usb/main.c
diff --git a/keyboards/converter/usb_usb/ble/ble.h b/keyboards/converter/usb_usb/ble/ble.h
index 3dccc23a413c..335117604702 100644
--- a/keyboards/converter/usb_usb/ble/ble.h
+++ b/keyboards/converter/usb_usb/ble/ble.h
@@ -1,3 +1,3 @@
#pragma once
-#include QMK_KEYBOARD_H
+#include "usb_usb.h"
diff --git a/keyboards/converter/usb_usb/ble/config.h b/keyboards/converter/usb_usb/ble/config.h
index 92df24d00376..675183f08203 100644
--- a/keyboards/converter/usb_usb/ble/config.h
+++ b/keyboards/converter/usb_usb/ble/config.h
@@ -1,13 +1,6 @@
#pragma once
#undef PRODUCT
-#define PRODUCT QMK BLE Adapter
+#define PRODUCT QMK BLE Adapter
-// Turn off the mode leds on the BLE module
-#define BLUEFRUIT_LE_ENABLE_MODE_LEDS 0
-#define BLUEFRUIT_LE_ENABLE_POWER_LED 0
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define NO_ACTION_ONESHOT
-
diff --git a/keyboards/converter/usb_usb/ble/readme.md b/keyboards/converter/usb_usb/ble/readme.md
index 0ee7223fd4be..05cf437399c9 100644
--- a/keyboards/converter/usb_usb/ble/readme.md
+++ b/keyboards/converter/usb_usb/ble/readme.md
@@ -17,14 +17,3 @@ Part list:
* [Pololu 5V Step-Up Voltage Regulator U3V12F5](https://www.pololu.com/product/2115)
* [Lithium Ion Battery - 3.7v 2000mAh](https://www.adafruit.com/product/2011)
* Some sort of switch to be able to turn it off
-
-Building and Flashing
----------------------
-
-```
-make converter-usb_usb-ble
-```
-
-```
-make converter-usb_usb-ble-avrdude
-```
\ No newline at end of file
diff --git a/keyboards/converter/usb_usb/ble/rules.mk b/keyboards/converter/usb_usb/ble/rules.mk
index df5bc36635b8..86a4e15ffec5 100644
--- a/keyboards/converter/usb_usb/ble/rules.mk
+++ b/keyboards/converter/usb_usb/ble/rules.mk
@@ -1,17 +1,7 @@
# Processor frequency
F_CPU = 8000000
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = no # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-
+EXTRAKEY_ENABLE = no
BLUETOOTH_ENABLE = yes
BLUETOOTH_DRIVER = BluefruitLE
-
LTO_ENABLE = yes
diff --git a/keyboards/converter/usb_usb/config.h b/keyboards/converter/usb_usb/config.h
index d2488336a5c0..5f791eaa34cb 100644
--- a/keyboards/converter/usb_usb/config.h
+++ b/keyboards/converter/usb_usb/config.h
@@ -17,6 +17,8 @@ along with this program. If not, see .
#pragma once
+#include "config_common.h"
+
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x005B
@@ -43,5 +45,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/converter/usb_usb/custom_matrix.cpp b/keyboards/converter/usb_usb/custom_matrix.cpp
index 00b5bc505335..a92feeb6c18d 100644
--- a/keyboards/converter/usb_usb/custom_matrix.cpp
+++ b/keyboards/converter/usb_usb/custom_matrix.cpp
@@ -58,36 +58,31 @@ extern "C" {
*/
#define ROW_MASK 0xF0
#define COL_MASK 0x0F
-#define CODE(row, col) (((row) << 4) | (col))
-#define ROW(code) (((code) & ROW_MASK) >> 4)
-#define COL(code) ((code) & COL_MASK)
-#define ROW_BITS(code) (1 << COL(code))
-
+#define CODE(row, col) (((row) << 4) | (col))
+#define ROW(code) (((code) & ROW_MASK) >> 4)
+#define COL(code) ((code) & COL_MASK)
+#define ROW_BITS(code) (1 << COL(code))
// Integrated key state of all keyboards
static report_keyboard_t local_keyboard_report;
-static bool matrix_is_mod = false;
-
/*
* USB Host Shield HID keyboards
* This supports two cascaded hubs and four keyboards
*/
USB usb_host;
-HIDBoot kbd1(&usb_host);
-HIDBoot kbd2(&usb_host);
-HIDBoot kbd3(&usb_host);
-HIDBoot kbd4(&usb_host);
+USBHub hub1(&usb_host);
+USBHub hub2(&usb_host);
+HIDBoot kbd1(&usb_host);
+HIDBoot kbd2(&usb_host);
+HIDBoot kbd3(&usb_host);
+HIDBoot kbd4(&usb_host);
KBDReportParser kbd_parser1;
KBDReportParser kbd_parser2;
KBDReportParser kbd_parser3;
KBDReportParser kbd_parser4;
-USBHub hub1(&usb_host);
-USBHub hub2(&usb_host);
-
-extern "C"
-{
+extern "C" {
uint8_t matrix_rows(void) { return MATRIX_ROWS; }
uint8_t matrix_cols(void) { return MATRIX_COLS; }
bool matrix_has_ghost(void) { return false; }
@@ -135,6 +130,7 @@ extern "C"
}
uint8_t matrix_scan(void) {
+ bool changed = false;
static uint16_t last_time_stamp1 = 0;
static uint16_t last_time_stamp2 = 0;
static uint16_t last_time_stamp3 = 0;
@@ -158,15 +154,13 @@ extern "C"
or_report(kbd_parser3.report);
or_report(kbd_parser4.report);
- matrix_is_mod = true;
+ changed = true;
dprintf("state: %02X %02X", local_keyboard_report.mods, local_keyboard_report.reserved);
for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
dprintf(" %02X", local_keyboard_report.keys[i]);
}
dprint("\r\n");
- } else {
- matrix_is_mod = false;
}
uint16_t timer;
@@ -189,7 +183,7 @@ extern "C"
}
}
matrix_scan_quantum();
- return 1;
+ return changed;
}
bool matrix_is_on(uint8_t row, uint8_t col) {
@@ -234,13 +228,11 @@ extern "C"
}
}
- void led_set(uint8_t usb_led)
- {
+ void led_set(uint8_t usb_led) {
if (kbd1.isReady()) kbd1.SetReport(0, 0, 2, 0, 1, &usb_led);
if (kbd2.isReady()) kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
if (kbd3.isReady()) kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
if (kbd4.isReady()) kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
led_set_kb(usb_led);
}
-
-};
+}
diff --git a/keyboards/converter/usb_usb/hasu/hasu.h b/keyboards/converter/usb_usb/hasu/hasu.h
index 3dccc23a413c..335117604702 100644
--- a/keyboards/converter/usb_usb/hasu/hasu.h
+++ b/keyboards/converter/usb_usb/hasu/hasu.h
@@ -1,3 +1,3 @@
#pragma once
-#include QMK_KEYBOARD_H
+#include "usb_usb.h"
diff --git a/keyboards/converter/usb_usb/main.c b/keyboards/converter/usb_usb/main.c
deleted file mode 100644
index 76e88922cb41..000000000000
--- a/keyboards/converter/usb_usb/main.c
+++ /dev/null
@@ -1,102 +0,0 @@
-#include
-#include
-#include
-#include
-
-// LUFA
-#include "lufa.h"
-
-#include "sendchar.h"
-#include "debug.h"
-#include "keyboard.h"
-#include "led.h"
-
-
-/* LED ping configuration */
-#define TMK_LED
-//#define LEONARDO_LED
-#if defined(TMK_LED)
-// For TMK converter and Teensy
-#define LED_TX_INIT (DDRD |= (1<<6))
-#define LED_TX_ON (PORTD |= (1<<6))
-#define LED_TX_OFF (PORTD &= ~(1<<6))
-#define LED_TX_TOGGLE (PORTD ^= (1<<6))
-#elif defined(LEONARDO_LED)
-// For Leonardo(TX LED)
-#define LED_TX_INIT (DDRD |= (1<<5))
-#define LED_TX_ON (PORTD &= ~(1<<5))
-#define LED_TX_OFF (PORTD |= (1<<5))
-#define LED_TX_TOGGLE (PORTD ^= (1<<5))
-#else
-#define LED_TX_INIT
-#define LED_TX_ON
-#define LED_TX_OFF
-#define LED_TX_TOGGLE
-#endif
-
-
-static void LUFA_setup(void)
-{
- /* Disable watchdog if enabled by bootloader/fuses */
- MCUSR &= ~(1 << WDRF);
- wdt_disable();
-
- /* Disable clock division */
-#if (F_CPU == 8000000)
- clock_prescale_set(clock_div_2); // 16MHz crystal divided by 2
-#else
- clock_prescale_set(clock_div_1);
-#endif
-
- // Leonardo needs. Without this USB device is not recognized.
- USB_Disable();
-
- USB_Init();
-
- // for Console_Task
- USB_Device_EnableSOFEvents();
- print_set_sendchar(sendchar);
-}
-
-
-
-int main(void)
-{
- // LED for debug
- LED_TX_INIT;
- LED_TX_ON;
-
- debug_enable = true;
- debug_keyboard = true;
-
- host_set_driver(&lufa_driver);
- keyboard_init();
-
- LUFA_setup();
-
- /* NOTE: Don't insert time consuming job here.
- * It'll cause unclear initialization failure when DFU reset(worm start).
- */
- sei();
-
-/* Some keyboards bootup quickly and cannot be initialized with this startup wait.
- // wait for startup of sendchar routine
- while (USB_DeviceState != DEVICE_STATE_Configured) ;
- if (debug_enable) {
- _delay_ms(1000);
- }
-*/
-
- debug("init: done\n");
-
- for (;;) {
- keyboard_task();
-
-#if !defined(INTERRUPT_CONTROL_ENDPOINT)
- // LUFA Task for control request
- USB_USBTask();
-#endif
- }
-
- return 0;
-}
diff --git a/keyboards/converter/usb_usb/pro_micro/pro_micro.h b/keyboards/converter/usb_usb/pro_micro/pro_micro.h
index 3dccc23a413c..335117604702 100644
--- a/keyboards/converter/usb_usb/pro_micro/pro_micro.h
+++ b/keyboards/converter/usb_usb/pro_micro/pro_micro.h
@@ -1,3 +1,3 @@
#pragma once
-#include QMK_KEYBOARD_H
+#include "usb_usb.h"
diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk
index 19903ed33146..a33c0aaa54ac 100644
--- a/keyboards/converter/usb_usb/rules.mk
+++ b/keyboards/converter/usb_usb/rules.mk
@@ -8,15 +8,17 @@ BOOTLOADER = caterina
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-#MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-#CONSOLE_ENABLE = yes # Console for debug
-#COMMAND_ENABLE = yes # Commands for debug and configuration
+MOUSEKEY_ENABLE = no # 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 = no # Enable N-Key Rollover
-#BACKLIGHT_ENABLE = yes
-USB_HID_ENABLE = yes
-CUSTOM_MATRIX = yes
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+USB_HID_ENABLE = yes
+CUSTOM_MATRIX = yes
-SRC = custom_matrix.cpp
+SRC += custom_matrix.cpp
DEFAULT_FOLDER = converter/usb_usb/hasu
diff --git a/keyboards/converter/usb_usb/usb_usb.h b/keyboards/converter/usb_usb/usb_usb.h
index 3acd67634a5d..4a25cf5d2e93 100644
--- a/keyboards/converter/usb_usb/usb_usb.h
+++ b/keyboards/converter/usb_usb/usb_usb.h
@@ -19,6 +19,14 @@ along with this program. If not, see .
#include "quantum.h"
+#if defined(KEYBOARD_converter_usb_usb_ble)
+# include "ble.h"
+#elif defined(KEYBOARD_converter_usb_usb_hasu)
+# include "hasu.h"
+#elif defined(KEYBOARD_converter_usb_usb_pro_micro)
+# include "pro_micro.h"
+#endif
+
#define XXX KC_NO
#define ______ KC_TRNS
From c0f417911703738b3ede14b87be5c4a39db07016 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Mon, 14 Mar 2022 10:54:49 +1100
Subject: [PATCH 016/221] Move keyboard USB IDs and strings to data driven: 0-9
(#16481)
---
keyboards/0xc7/61key/config.h | 9 +--------
keyboards/0xc7/61key/info.json | 6 ++++++
keyboards/0xcb/1337/config.h | 7 -------
keyboards/0xcb/1337/info.json | 8 +++++++-
keyboards/0xcb/static/config.h | 6 ------
keyboards/0xcb/static/info.json | 8 +++++++-
keyboards/10bleoledhub/config.h | 5 -----
keyboards/10bleoledhub/info.json | 6 ++++++
keyboards/1upkeyboards/1up60hse/config.h | 7 -------
keyboards/1upkeyboards/1up60hse/info.json | 6 ++++++
keyboards/1upkeyboards/1up60hte/config.h | 7 -------
keyboards/1upkeyboards/1up60hte/info.json | 6 ++++++
keyboards/1upkeyboards/1up60rgb/config.h | 7 -------
keyboards/1upkeyboards/1up60rgb/info.json | 8 +++++++-
keyboards/1upkeyboards/super16/config.h | 7 -------
keyboards/1upkeyboards/super16/info.json | 6 ++++++
keyboards/1upkeyboards/super16v2/config.h | 7 -------
keyboards/1upkeyboards/super16v2/info.json | 8 +++++++-
keyboards/25keys/cassette42/config.h | 8 --------
keyboards/25keys/cassette42/info.json | 12 +++++++++---
keyboards/2key2crawl/config.h | 7 -------
keyboards/2key2crawl/info.json | 8 +++++++-
keyboards/30wer/config.h | 7 -------
keyboards/30wer/info.json | 12 +++++++++---
keyboards/3keyecosystem/2key2/config.h | 7 -------
keyboards/3keyecosystem/2key2/info.json | 8 +++++++-
keyboards/40percentclub/25/config.h | 7 -------
keyboards/40percentclub/25/info.json | 8 +++++++-
keyboards/40percentclub/4pack/config.h | 7 -------
keyboards/40percentclub/4pack/info.json | 12 +++++++++---
keyboards/40percentclub/4x4/config.h | 7 -------
keyboards/40percentclub/4x4/info.json | 8 +++++++-
keyboards/40percentclub/5x5/config.h | 7 -------
keyboards/40percentclub/5x5/info.json | 8 +++++++-
keyboards/40percentclub/6lit/config.h | 7 -------
keyboards/40percentclub/6lit/info.json | 8 +++++++-
keyboards/40percentclub/foobar/config.h | 7 -------
keyboards/40percentclub/foobar/info.json | 8 +++++++-
keyboards/40percentclub/gherkin/config.h | 7 -------
keyboards/40percentclub/gherkin/info.json | 6 ++++++
keyboards/40percentclub/half_n_half/config.h | 7 -------
keyboards/40percentclub/half_n_half/info.json | 6 ++++++
keyboards/40percentclub/i75/config.h | 7 -------
keyboards/40percentclub/i75/info.json | 6 ++++++
keyboards/40percentclub/luddite/config.h | 7 -------
keyboards/40percentclub/luddite/info.json | 6 ++++++
keyboards/40percentclub/mf68/config.h | 7 -------
keyboards/40percentclub/mf68/info.json | 6 ++++++
keyboards/40percentclub/nano/config.h | 7 -------
keyboards/40percentclub/nano/info.json | 6 ++++++
keyboards/40percentclub/nein/config.h | 7 -------
keyboards/40percentclub/nein/info.json | 8 +++++++-
keyboards/40percentclub/nori/config.h | 7 -------
keyboards/40percentclub/nori/info.json | 8 +++++++-
keyboards/40percentclub/polyandry/config.h | 7 -------
keyboards/40percentclub/polyandry/info.json | 8 +++++++-
keyboards/40percentclub/sixpack/config.h | 7 -------
keyboards/40percentclub/sixpack/info.json | 6 ++++++
keyboards/40percentclub/tomato/config.h | 7 -------
keyboards/40percentclub/tomato/info.json | 6 ++++++
keyboards/40percentclub/ut47/config.h | 7 -------
keyboards/40percentclub/ut47/info.json | 8 +++++++-
keyboards/45_ats/config.h | 7 -------
keyboards/45_ats/info.json | 8 +++++++-
keyboards/4by3/config.h | 7 -------
keyboards/4by3/info.json | 6 ++++++
keyboards/7c8/framework/config.h | 6 ------
keyboards/7c8/framework/info.json | 6 ++++++
keyboards/9key/config.h | 7 -------
keyboards/9key/info.json | 8 +++++++-
70 files changed, 237 insertions(+), 269 deletions(-)
diff --git a/keyboards/0xc7/61key/config.h b/keyboards/0xc7/61key/config.h
index d83a855572e8..d1edf3284e1c 100644
--- a/keyboards/0xc7/61key/config.h
+++ b/keyboards/0xc7/61key/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xE117
-#define PRODUCT_ID 0x6161
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 0xC7
-#define PRODUCT 61Key
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
@@ -149,4 +142,4 @@ along with this program. If not, see .
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
-//#define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/0xc7/61key/info.json b/keyboards/0xc7/61key/info.json
index 02070e87c906..9ed798c93bcc 100644
--- a/keyboards/0xc7/61key/info.json
+++ b/keyboards/0xc7/61key/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "61Key",
+ "manufacturer": "0xC7",
"url": "",
"maintainer": "RealEmanGaming",
+ "usb": {
+ "vid": "0xE117",
+ "pid": "0x6161",
+ "device_version": "0.0.1"
+ },
"layout_aliases": {
"LAYOUT": "LAYOUT_60_ansi"
},
diff --git a/keyboards/0xcb/1337/config.h b/keyboards/0xcb/1337/config.h
index d134d1ab49dc..3b34af658061 100644
--- a/keyboards/0xcb/1337/config.h
+++ b/keyboards/0xcb/1337/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
// clang-format off
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xCB00
-#define PRODUCT_ID 0x1337
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 0xCB
-#define PRODUCT 1337
-
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 3
diff --git a/keyboards/0xcb/1337/info.json b/keyboards/0xcb/1337/info.json
index 25899933cb1a..cd5993ee0d59 100644
--- a/keyboards/0xcb/1337/info.json
+++ b/keyboards/0xcb/1337/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "0xCB 1337",
+ "keyboard_name": "1337",
+ "manufacturer": "0xCB",
"url": "https://0xCB.dev",
"maintainer": "Conor-Burns",
+ "usb": {
+ "vid": "0xCB00",
+ "pid": "0x1337",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/0xcb/static/config.h b/keyboards/0xcb/static/config.h
index c30450b460dc..9c3a0c664963 100644
--- a/keyboards/0xcb/static/config.h
+++ b/keyboards/0xcb/static/config.h
@@ -18,12 +18,6 @@ along with this program. If not, see .
#include "config_common.h"
// clang-format off
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xCB00
-#define PRODUCT_ID 0xA455
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 0xCB
-#define PRODUCT Static
/* key matrix size */
#define MATRIX_ROWS 8
diff --git a/keyboards/0xcb/static/info.json b/keyboards/0xcb/static/info.json
index 33fa8d265ea2..4a6232abad48 100644
--- a/keyboards/0xcb/static/info.json
+++ b/keyboards/0xcb/static/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "0xCB Static",
+ "keyboard_name": "Static",
+ "manufacturer": "0xCB",
"url": "https://0xCB.dev",
"maintainer": "Conor-Burns",
+ "usb": {
+ "vid": "0xCB00",
+ "pid": "0xA455",
+ "device_version": "0.0.1"
+ },
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
diff --git a/keyboards/10bleoledhub/config.h b/keyboards/10bleoledhub/config.h
index d3e845fec96c..867589a27cb5 100644
--- a/keyboards/10bleoledhub/config.h
+++ b/keyboards/10bleoledhub/config.h
@@ -17,11 +17,6 @@ along with this program. If not, see .*/
#pragma once
#include "config_common.h"
-#define VENDOR_ID 0x7C88 // "hw" = haierwangwei2005
-#define PRODUCT_ID 0x7C99 // "10b" = 10bleoledhub
-#define DEVICE_VER 0x0001
-#define MANUFACTURER haierwangwei2005
-#define PRODUCT 10bleoledhub
/* key matrix size */
#define MATRIX_ROWS 4
diff --git a/keyboards/10bleoledhub/info.json b/keyboards/10bleoledhub/info.json
index 769c98874d9c..ec468454b135 100644
--- a/keyboards/10bleoledhub/info.json
+++ b/keyboards/10bleoledhub/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "10bleoledhub",
+ "manufacturer": "haierwangwei2005",
"url": "https://github.com/haierwangwei2005/10BLE-OLED-HUB",
"maintainer": "haierwangwei2005",
+ "usb": {
+ "vid": "0x7C88",
+ "pid": "0x7C99",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/1upkeyboards/1up60hse/config.h b/keyboards/1upkeyboards/1up60hse/config.h
index 7a7fa56fe50d..3f4f742b480d 100644
--- a/keyboards/1upkeyboards/1up60hse/config.h
+++ b/keyboards/1upkeyboards/1up60hse/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x6F75 // OU
-#define PRODUCT_ID 0x6873
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 1upkeyboards
-#define PRODUCT 1up60hse
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
diff --git a/keyboards/1upkeyboards/1up60hse/info.json b/keyboards/1upkeyboards/1up60hse/info.json
index 7eca93d8a956..d6d87310d6c3 100644
--- a/keyboards/1upkeyboards/1up60hse/info.json
+++ b/keyboards/1upkeyboards/1up60hse/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "1up60hse",
+ "manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x6F75",
+ "pid": "0x6873",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
diff --git a/keyboards/1upkeyboards/1up60hte/config.h b/keyboards/1upkeyboards/1up60hte/config.h
index 81fa0e1eb6dd..256af396e538 100644
--- a/keyboards/1upkeyboards/1up60hte/config.h
+++ b/keyboards/1upkeyboards/1up60hte/config.h
@@ -20,13 +20,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x6F75 // OU
-#define PRODUCT_ID 0x6874 // HT
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 1upkeyboards
-#define PRODUCT 1up60hte
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
diff --git a/keyboards/1upkeyboards/1up60hte/info.json b/keyboards/1upkeyboards/1up60hte/info.json
index 830c6e289fde..3a4a716d9668 100644
--- a/keyboards/1upkeyboards/1up60hte/info.json
+++ b/keyboards/1upkeyboards/1up60hte/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "1up60hte",
+ "manufacturer": "1upkeyboards",
"url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/",
"maintainer": "1upkeyboards",
+ "usb": {
+ "vid": "0x6F75",
+ "pid": "0x6874",
+ "device_version": "0.0.1"
+ },
"layout_aliases": {
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
},
diff --git a/keyboards/1upkeyboards/1up60rgb/config.h b/keyboards/1upkeyboards/1up60rgb/config.h
index c78fc3e52b5f..00cff570b137 100644
--- a/keyboards/1upkeyboards/1up60rgb/config.h
+++ b/keyboards/1upkeyboards/1up60rgb/config.h
@@ -2,13 +2,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x6F75 // OU
-#define PRODUCT_ID 0x7267 // RG
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 1upkeyboards
-#define PRODUCT 1UP RGB Underglow PCB
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
diff --git a/keyboards/1upkeyboards/1up60rgb/info.json b/keyboards/1upkeyboards/1up60rgb/info.json
index 701088c46184..956ccb0afaed 100644
--- a/keyboards/1upkeyboards/1up60rgb/info.json
+++ b/keyboards/1upkeyboards/1up60rgb/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "1up60rgb",
+ "keyboard_name": "1UP RGB Underglow PCB",
+ "manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x6F75",
+ "pid": "0x7267",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/1upkeyboards/super16/config.h b/keyboards/1upkeyboards/super16/config.h
index c0c0a7891b71..354f0680e820 100644
--- a/keyboards/1upkeyboards/super16/config.h
+++ b/keyboards/1upkeyboards/super16/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x6F75 // "ou"
-#define PRODUCT_ID 0x5516 // "U" 16
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 1upkeyboards
-#define PRODUCT super16
-
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 4
diff --git a/keyboards/1upkeyboards/super16/info.json b/keyboards/1upkeyboards/super16/info.json
index 261fde20a630..b437bb503851 100644
--- a/keyboards/1upkeyboards/super16/info.json
+++ b/keyboards/1upkeyboards/super16/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "super16",
+ "manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x6F75",
+ "pid": "0x5516",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
diff --git a/keyboards/1upkeyboards/super16v2/config.h b/keyboards/1upkeyboards/super16v2/config.h
index 4fd4238780a8..77bb89d954f0 100644
--- a/keyboards/1upkeyboards/super16v2/config.h
+++ b/keyboards/1upkeyboards/super16v2/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x6F75 // OU
-#define PRODUCT_ID 0x5517
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 1upkeyboards
-#define PRODUCT super16v2
-
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 4
diff --git a/keyboards/1upkeyboards/super16v2/info.json b/keyboards/1upkeyboards/super16v2/info.json
index 2a384f775d56..891eaf316b49 100644
--- a/keyboards/1upkeyboards/super16v2/info.json
+++ b/keyboards/1upkeyboards/super16v2/info.json
@@ -1,10 +1,16 @@
{
"keyboard_name": "super16v2",
+ "manufacturer": "1upkeyboards",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x6F75",
+ "pid": "0x5517",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
}
}
- }
\ No newline at end of file
+ }
diff --git a/keyboards/25keys/cassette42/config.h b/keyboards/25keys/cassette42/config.h
index cac03f6346c0..71621695f4a5 100644
--- a/keyboards/25keys/cassette42/config.h
+++ b/keyboards/25keys/cassette42/config.h
@@ -19,14 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0xCA42
-#define DEVICE_VER 0x0001
-#define MANUFACTURER monksoffunk
-#define PRODUCT cassette42
-
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 6
diff --git a/keyboards/25keys/cassette42/info.json b/keyboards/25keys/cassette42/info.json
index 87c67df95165..4fe088f9e6b1 100644
--- a/keyboards/25keys/cassette42/info.json
+++ b/keyboards/25keys/cassette42/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "cassette42",
- "url": "http://www.sho-k.co.uk/tech/1246.html",
- "maintainer": "monksoffunk",
+ "keyboard_name": "cassette42",
+ "manufacturer": "monksoffunk",
+ "url": "http://www.sho-k.co.uk/tech/1246.html",
+ "maintainer": "monksoffunk",
+ "usb": {
+ "vid": "0xFEED",
+ "pid": "0xCA42",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [{"x":0.5, "y":0.75}, {"x":2.5, "y":0.75}, {"x":0, "y":1.75}, {"x":1, "y":1.75}, {"x":2, "y":1.75}, {"x":3, "y":1.75}]
diff --git a/keyboards/2key2crawl/config.h b/keyboards/2key2crawl/config.h
index 27a94a00ca70..f6fc6f8c1eaa 100644
--- a/keyboards/2key2crawl/config.h
+++ b/keyboards/2key2crawl/config.h
@@ -2,13 +2,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6090
-#define DEVICE_VER 0x0002
-#define MANUFACTURER WoodKeys.click
-#define PRODUCT 2Key2Crawl
-
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 7
diff --git a/keyboards/2key2crawl/info.json b/keyboards/2key2crawl/info.json
index cc48e811382b..c2cad9847050 100644
--- a/keyboards/2key2crawl/info.json
+++ b/keyboards/2key2crawl/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "2Key2CrawlPad",
+ "keyboard_name": "2Key2Crawl",
+ "manufacturer": "WoodKeys.click",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0xFEED",
+ "pid": "0x6090",
+ "device_version": "0.0.2"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/30wer/config.h b/keyboards/30wer/config.h
index d4f656edca92..65a54cba4ab2 100644
--- a/keyboards/30wer/config.h
+++ b/keyboards/30wer/config.h
@@ -2,13 +2,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x1234
-#define PRODUCT_ID 0x5678
-#define DEVICE_VER 0x0000
-#define MANUFACTURER 8o7wer
-#define PRODUCT 30wer
-
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 13
diff --git a/keyboards/30wer/info.json b/keyboards/30wer/info.json
index 18ea404fd22b..62fee361a075 100644
--- a/keyboards/30wer/info.json
+++ b/keyboards/30wer/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "30wer",
- "url": "",
- "maintainer": "qmk",
+ "keyboard_name": "30wer",
+ "manufacturer": "8o7wer",
+ "url": "",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0x1234",
+ "pid": "0x5678",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/3keyecosystem/2key2/config.h b/keyboards/3keyecosystem/2key2/config.h
index 4ca0e830ee86..58010eea5513 100644
--- a/keyboards/3keyecosystem/2key2/config.h
+++ b/keyboards/3keyecosystem/2key2/config.h
@@ -18,13 +18,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x1209
-#define PRODUCT_ID 0x3304
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 3-Key-Ecosystem
-#define PRODUCT 2key2
-
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 2
diff --git a/keyboards/3keyecosystem/2key2/info.json b/keyboards/3keyecosystem/2key2/info.json
index 49caf91b5a3a..79e999cc1608 100644
--- a/keyboards/3keyecosystem/2key2/info.json
+++ b/keyboards/3keyecosystem/2key2/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "3-Key-Ecosystem 2key2: 2x1 macro-keyboard",
+ "keyboard_name": "2key2",
+ "manufacturer": "3-Key-Ecosystem",
"url": "https://github.com/softplus/3keyecosystem/tree/main/2key2",
"maintainer": "softplus",
+ "usb": {
+ "vid": "0x1209",
+ "pid": "0x3304",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/40percentclub/25/config.h b/keyboards/40percentclub/25/config.h
index d478131e95c0..292854f68f1c 100644
--- a/keyboards/40percentclub/25/config.h
+++ b/keyboards/40percentclub/25/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // 40%
-#define PRODUCT_ID 0x0F25
-#define DEVICE_VER 0x0100
-#define MANUFACTURER di0ib
-#define PRODUCT The 5x5 Keyboard
-
#define USE_SERIAL
/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D0
diff --git a/keyboards/40percentclub/25/info.json b/keyboards/40percentclub/25/info.json
index 1e86454125c7..15995f84797b 100644
--- a/keyboards/40percentclub/25/info.json
+++ b/keyboards/40percentclub/25/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "foobar",
+ "keyboard_name": "The 5x5 Keyboard",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x0F25",
+ "device_version": "1.0.0"
+ },
"layouts": {
"LAYOUT_ortho_5x5": {
"layout": [
diff --git a/keyboards/40percentclub/4pack/config.h b/keyboards/40percentclub/4pack/config.h
index 023df5fc4eee..305e71e542e9 100644
--- a/keyboards/40percentclub/4pack/config.h
+++ b/keyboards/40percentclub/4pack/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025
-#define PRODUCT_ID 0x0000
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 40percentclub
-#define PRODUCT 4pack
-
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 4
diff --git a/keyboards/40percentclub/4pack/info.json b/keyboards/40percentclub/4pack/info.json
index d328a999c297..e8e0463ab6dc 100644
--- a/keyboards/40percentclub/4pack/info.json
+++ b/keyboards/40percentclub/4pack/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "4pack",
- "url": "",
- "maintainer": "qmk",
+ "keyboard_name": "4pack",
+ "manufacturer": "40percentclub",
+ "url": "",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x0000",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}]
diff --git a/keyboards/40percentclub/4x4/config.h b/keyboards/40percentclub/4x4/config.h
index 439aa1b1479e..b74eb62c1e8f 100644
--- a/keyboards/40percentclub/4x4/config.h
+++ b/keyboards/40percentclub/4x4/config.h
@@ -4,13 +4,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 //"40 %", since 0x3430 is already registered.
-#define PRODUCT_ID 0x0A0C
-#define DEVICE_VER 0x4444
-#define MANUFACTURER di0ib
-#define PRODUCT The 4x4 Keyboard
-
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 16
diff --git a/keyboards/40percentclub/4x4/info.json b/keyboards/40percentclub/4x4/info.json
index 96a08d3fd531..f0e55b4c2340 100644
--- a/keyboards/40percentclub/4x4/info.json
+++ b/keyboards/40percentclub/4x4/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "40percent.club 4x4",
+ "keyboard_name": "The 4x4 Keyboard",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x0A0C",
+ "device_version": "44.4.4"
+ },
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
diff --git a/keyboards/40percentclub/5x5/config.h b/keyboards/40percentclub/5x5/config.h
index c3bb5d6380c7..62d63b8afa4a 100644
--- a/keyboards/40percentclub/5x5/config.h
+++ b/keyboards/40percentclub/5x5/config.h
@@ -4,13 +4,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // 40%
-#define PRODUCT_ID 0x05B5
-#define DEVICE_VER 0x0100
-#define MANUFACTURER di0ib
-#define PRODUCT The 5x5 Keyboard
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
diff --git a/keyboards/40percentclub/5x5/info.json b/keyboards/40percentclub/5x5/info.json
index bb6b836ba991..94ffc2d9d29c 100644
--- a/keyboards/40percentclub/5x5/info.json
+++ b/keyboards/40percentclub/5x5/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "40percent.club 5x5",
+ "keyboard_name": "The 5x5 Keyboard",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x05B5",
+ "device_version": "1.0.0"
+ },
"layouts": {
"LAYOUT_ortho_5x5": {
"layout": [
diff --git a/keyboards/40percentclub/6lit/config.h b/keyboards/40percentclub/6lit/config.h
index ae4ee1bad87d..e402932b2191 100644
--- a/keyboards/40percentclub/6lit/config.h
+++ b/keyboards/40percentclub/6lit/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // 40%
-#define PRODUCT_ID 0x0F61
-#define DEVICE_VER 0x0100
-#define MANUFACTURER di0ib
-#define PRODUCT The 6lit Macropad
-
#define USE_SERIAL
/* serial.c configuration for split keyboard */
diff --git a/keyboards/40percentclub/6lit/info.json b/keyboards/40percentclub/6lit/info.json
index 8308847f6cbe..a844a044e208 100644
--- a/keyboards/40percentclub/6lit/info.json
+++ b/keyboards/40percentclub/6lit/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "6lit",
+ "keyboard_name": "The 6lit Macropad",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x0F61",
+ "device_version": "1.0.0"
+ },
"layouts": {
"LAYOUT_ortho_2x3": {
"layout": [
diff --git a/keyboards/40percentclub/foobar/config.h b/keyboards/40percentclub/foobar/config.h
index 1e91d3bd10bb..3f6cb1f10c3c 100644
--- a/keyboards/40percentclub/foobar/config.h
+++ b/keyboards/40percentclub/foobar/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // 40%
-#define PRODUCT_ID 0x0F00
-#define DEVICE_VER 0x0100
-#define MANUFACTURER di0ib
-#define PRODUCT The foobar Keyboard
-
#define USE_SERIAL
/* serial.c configuration for split keyboard */
diff --git a/keyboards/40percentclub/foobar/info.json b/keyboards/40percentclub/foobar/info.json
index b825ed0267e1..832e65bfc61c 100644
--- a/keyboards/40percentclub/foobar/info.json
+++ b/keyboards/40percentclub/foobar/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "foobar",
+ "keyboard_name": "The foobar Keyboard",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x0F00",
+ "device_version": "1.0.0"
+ },
"layouts": {
"LAYOUT_ortho_3x5": {
"layout": [
diff --git a/keyboards/40percentclub/gherkin/config.h b/keyboards/40percentclub/gherkin/config.h
index 6373ea2e60db..e7062990cb37 100644
--- a/keyboards/40percentclub/gherkin/config.h
+++ b/keyboards/40percentclub/gherkin/config.h
@@ -2,13 +2,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 //"40 %", since 0x3430 is already registered.
-#define PRODUCT_ID 0x6060
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 40 Percent Club
-#define PRODUCT Gherkin
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 6
diff --git a/keyboards/40percentclub/gherkin/info.json b/keyboards/40percentclub/gherkin/info.json
index b4600eba0059..86938754494c 100644
--- a/keyboards/40percentclub/gherkin/info.json
+++ b/keyboards/40percentclub/gherkin/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Gherkin",
+ "manufacturer": "40 Percent Club",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x6060",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_ortho_3x10": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}]
diff --git a/keyboards/40percentclub/half_n_half/config.h b/keyboards/40percentclub/half_n_half/config.h
index 0c819031da2a..292ac485bd1a 100644
--- a/keyboards/40percentclub/half_n_half/config.h
+++ b/keyboards/40percentclub/half_n_half/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // 40%
-#define PRODUCT_ID 0x4A1F
-#define DEVICE_VER 0x0100
-#define MANUFACTURER di0ib
-#define PRODUCT half_n_half
-
/* key matrix size */
#define MATRIX_ROWS 4*2
#define MATRIX_COLS 7
diff --git a/keyboards/40percentclub/half_n_half/info.json b/keyboards/40percentclub/half_n_half/info.json
index 57a65424f00a..1b7f12940126 100644
--- a/keyboards/40percentclub/half_n_half/info.json
+++ b/keyboards/40percentclub/half_n_half/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "half_n_half",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x4A1F",
+ "device_version": "1.0.0"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/40percentclub/i75/config.h b/keyboards/40percentclub/i75/config.h
index bacf9eb30f77..bce564c042aa 100644
--- a/keyboards/40percentclub/i75/config.h
+++ b/keyboards/40percentclub/i75/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025
-#define PRODUCT_ID 0x0A0C
-#define DEVICE_VER 0x0175
-#define MANUFACTURER di0ib
-#define PRODUCT i75
-
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/40percentclub/i75/info.json b/keyboards/40percentclub/i75/info.json
index 7e705cdf8638..1753d4230977 100644
--- a/keyboards/40percentclub/i75/info.json
+++ b/keyboards/40percentclub/i75/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "i75",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x0A0C",
+ "device_version": "1.7.5"
+ },
"layouts": {
"LAYOUT_ortho_5x15": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"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":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
diff --git a/keyboards/40percentclub/luddite/config.h b/keyboards/40percentclub/luddite/config.h
index 3f15523c89ab..3924841b0465 100644
--- a/keyboards/40percentclub/luddite/config.h
+++ b/keyboards/40percentclub/luddite/config.h
@@ -2,13 +2,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // "40%", changed since 0x3430 is already officially registered
-#define PRODUCT_ID 0x4C55 // "LU"
-#define DEVICE_VER 0x1001
-#define MANUFACTURER di0ib
-#define PRODUCT Luddite
-
/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 8
diff --git a/keyboards/40percentclub/luddite/info.json b/keyboards/40percentclub/luddite/info.json
index 45a446e818de..565880a16565 100644
--- a/keyboards/40percentclub/luddite/info.json
+++ b/keyboards/40percentclub/luddite/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Luddite",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x4C55",
+ "device_version": "10.0.1"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
diff --git a/keyboards/40percentclub/mf68/config.h b/keyboards/40percentclub/mf68/config.h
index 7ebe5ae1b3d1..2ed8c8719550 100644
--- a/keyboards/40percentclub/mf68/config.h
+++ b/keyboards/40percentclub/mf68/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // "40%", changed since 0x3430 is already officially registered
-#define PRODUCT_ID 0x4D68 // "M68"
-#define DEVICE_VER 0x0101
-#define MANUFACTURER di0ib
-#define PRODUCT MF68
-
/* key matrix size */
#define MATRIX_ROWS 8
#define MATRIX_COLS 9
diff --git a/keyboards/40percentclub/mf68/info.json b/keyboards/40percentclub/mf68/info.json
index 873824edb0df..5a8164bcb44c 100644
--- a/keyboards/40percentclub/mf68/info.json
+++ b/keyboards/40percentclub/mf68/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "MF68",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x4D68",
+ "device_version": "1.0.1"
+ },
"layouts": {
"LAYOUT_68_ansi": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.25, "y":1}, {"x":16.25, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"x":15.25, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}]
diff --git a/keyboards/40percentclub/nano/config.h b/keyboards/40percentclub/nano/config.h
index c6d66a1bb3d0..7d789cff049c 100644
--- a/keyboards/40percentclub/nano/config.h
+++ b/keyboards/40percentclub/nano/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 //"40 %", to make it consistent with other 40percent.club boards.
-#define PRODUCT_ID 0x0007
-#define DEVICE_VER 0x0001
-#define MANUFACTURER di0ib
-#define PRODUCT Nano
-
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 4
diff --git a/keyboards/40percentclub/nano/info.json b/keyboards/40percentclub/nano/info.json
index 35eff7e960ce..914b32aaa443 100644
--- a/keyboards/40percentclub/nano/info.json
+++ b/keyboards/40percentclub/nano/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Nano",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x0007",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_ortho_2x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}]
diff --git a/keyboards/40percentclub/nein/config.h b/keyboards/40percentclub/nein/config.h
index 87c62673f968..4dfb143e52e7 100644
--- a/keyboards/40percentclub/nein/config.h
+++ b/keyboards/40percentclub/nein/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 // "40%", changed since 0x3430 is already officially registered
-#define PRODUCT_ID 0x9999
-#define DEVICE_VER 0x9999
-#define MANUFACTURER di0ib
-#define PRODUCT The nein Keyboard
-
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 3
diff --git a/keyboards/40percentclub/nein/info.json b/keyboards/40percentclub/nein/info.json
index 6d948877d167..812853d0fef1 100644
--- a/keyboards/40percentclub/nein/info.json
+++ b/keyboards/40percentclub/nein/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "nein",
+ "keyboard_name": "The nein Keyboard",
+ "manufacturer": "di0ib",
"url": "http://www.40percent.club/2019/04/nein.html",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "vid": "0x9999",
+ "device_version": "99.9.9"
+ },
"layouts": {
"LAYOUT_ortho_3x3": {
"layout": [
diff --git a/keyboards/40percentclub/nori/config.h b/keyboards/40percentclub/nori/config.h
index 882da633e074..0fed3daf1110 100644
--- a/keyboards/40percentclub/nori/config.h
+++ b/keyboards/40percentclub/nori/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025
-#define PRODUCT_ID 0x0A0C
-#define DEVICE_VER 0x0444
-#define MANUFACTURER di0ib
-#define PRODUCT The nori Keyboard
-
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 12
diff --git a/keyboards/40percentclub/nori/info.json b/keyboards/40percentclub/nori/info.json
index 9de33d52f04d..536696670523 100644
--- a/keyboards/40percentclub/nori/info.json
+++ b/keyboards/40percentclub/nori/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "nori",
+ "keyboard_name": "The nori Keyboard",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0xA0C",
+ "device_version": "4.4.4"
+ },
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
diff --git a/keyboards/40percentclub/polyandry/config.h b/keyboards/40percentclub/polyandry/config.h
index 6f04d12297c3..1fd3e22f49be 100644
--- a/keyboards/40percentclub/polyandry/config.h
+++ b/keyboards/40percentclub/polyandry/config.h
@@ -18,13 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025
-#define PRODUCT_ID 0x6060
-#define DEVICE_VER 0x0001
-#define MANUFACTURER di0ib
-#define PRODUCT Polypad
-
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/40percentclub/polyandry/info.json b/keyboards/40percentclub/polyandry/info.json
index d0d1a00f86c8..3572b38c233a 100644
--- a/keyboards/40percentclub/polyandry/info.json
+++ b/keyboards/40percentclub/polyandry/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "Polyandry",
+ "keyboard_name": "Polypad",
+ "manufacturer": "di0ib",
"url": "",
"maintainer": "QMK",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x6060",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/40percentclub/sixpack/config.h b/keyboards/40percentclub/sixpack/config.h
index edb123c4b9c2..4ddad2efb762 100644
--- a/keyboards/40percentclub/sixpack/config.h
+++ b/keyboards/40percentclub/sixpack/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025 //"40 %", since 0x3430 is already registered.
-#define PRODUCT_ID 0x5350 // "SP"
-#define DEVICE_VER 0x1001
-#define MANUFACTURER di0ib
-#define PRODUCT Six Pack
-
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
diff --git a/keyboards/40percentclub/sixpack/info.json b/keyboards/40percentclub/sixpack/info.json
index 3e02a01bc2fd..b99c24a61765 100644
--- a/keyboards/40percentclub/sixpack/info.json
+++ b/keyboards/40percentclub/sixpack/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Six Pack",
+ "manufacturer": "di0ib",
"url": "https://www.40percent.club/2017/05/six-pack-11.html",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x5350",
+ "device_version": "10.0.1"
+ },
"layouts": {
"LAYOUT_ortho_2x3": {
"layout": [
diff --git a/keyboards/40percentclub/tomato/config.h b/keyboards/40percentclub/tomato/config.h
index 8f06341aad84..b6534622eafa 100644
--- a/keyboards/40percentclub/tomato/config.h
+++ b/keyboards/40percentclub/tomato/config.h
@@ -2,13 +2,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025
-#define PRODUCT_ID 0x546F //"To", was duplicate with polyandry
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 40 Percent Club
-#define PRODUCT Tomato
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 6
diff --git a/keyboards/40percentclub/tomato/info.json b/keyboards/40percentclub/tomato/info.json
index 57bcfd17a303..1ecaa84affaf 100644
--- a/keyboards/40percentclub/tomato/info.json
+++ b/keyboards/40percentclub/tomato/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Tomato",
+ "manufacturer": "40 Percent Club",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x546F",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_ortho_3x10": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}]
diff --git a/keyboards/40percentclub/ut47/config.h b/keyboards/40percentclub/ut47/config.h
index 7ead58e09647..3724e4b2d57a 100644
--- a/keyboards/40percentclub/ut47/config.h
+++ b/keyboards/40percentclub/ut47/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4025
-#define PRODUCT_ID 0x7574 //"ut"
-#define DEVICE_VER 0x0001
-#define MANUFACTURER 40percent.club
-#define PRODUCT ut47
-
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 12
diff --git a/keyboards/40percentclub/ut47/info.json b/keyboards/40percentclub/ut47/info.json
index 4993bebb0fc0..e3173098e4b1 100644
--- a/keyboards/40percentclub/ut47/info.json
+++ b/keyboards/40percentclub/ut47/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "UT47",
+ "keyboard_name": "ut47",
+ "manufacturer": "40percent.club",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "vid": "0x7574",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Backspace", "x":11, "y":0, "w":1.5}, {"label":"LT(3) / Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"\"", "x":11.25, "y":1, "w":1.25}, {"label":"Shift", "x":0, "y":2, "w":1.5}, {"label":"Z", "x":1.5, "y":2}, {"label":"X", "x":2.5, "y":2}, {"label":"C", "x":3.5, "y":2}, {"label":"V", "x":4.5, "y":2}, {"label":"B", "x":5.5, "y":2}, {"label":"N", "x":6.5, "y":2}, {"label":"M", "x":7.5, "y":2}, {"label":"<", "x":8.5, "y":2}, {"label":">", "x":9.5, "y":2}, {"label":"?", "x":10.5, "y":2}, {"label":"Shift / Enter", "x":11.5, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Alt", "x":1, "y":3}, {"label":"GUI", "x":2, "y":3}, {"label":"Menu", "x":3, "y":3}, {"label":"MO(2)", "x":4, "y":3, "w":1.25}, {"x":5.25, "y":3, "w":2}, {"label":"MO(1)", "x":7.25, "y":3, "w":1.25}, {"label":"\u2190", "x":8.5, "y":3}, {"label":"\u2193", "x":9.5, "y":3}, {"label":"\u2191", "x":10.5, "y":3}, {"label":"\u2192", "x":11.5, "y":3}]
diff --git a/keyboards/45_ats/config.h b/keyboards/45_ats/config.h
index 4733095bc134..8177f89038d0 100644
--- a/keyboards/45_ats/config.h
+++ b/keyboards/45_ats/config.h
@@ -20,13 +20,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xAB13
-#define PRODUCT_ID 0x4511
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Abec13
-#define PRODUCT 45ATS
-
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 14
diff --git a/keyboards/45_ats/info.json b/keyboards/45_ats/info.json
index 2ea14357ee4d..268af942feaf 100644
--- a/keyboards/45_ats/info.json
+++ b/keyboards/45_ats/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "45-ATS",
+ "keyboard_name": "45ATS",
+ "manufacturer": "Abec13",
"url": "",
"maintainer": "The-Royal",
+ "usb": {
+ "vid": "0xAB13",
+ "pid": "0x4511",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_split_space": {
"layout": [
diff --git a/keyboards/4by3/config.h b/keyboards/4by3/config.h
index daaafb02a6ff..27ad7441cc86 100644
--- a/keyboards/4by3/config.h
+++ b/keyboards/4by3/config.h
@@ -2,13 +2,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xEEEE
-#define PRODUCT_ID 0x2019
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Elias Sjögreen
-#define PRODUCT 4by3
-
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 4
diff --git a/keyboards/4by3/info.json b/keyboards/4by3/info.json
index 50f7c44b4f8c..24a2b3d34a31 100644
--- a/keyboards/4by3/info.json
+++ b/keyboards/4by3/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "4by3",
+ "manufacturer": "Elias Sjögreen",
"url": "https://github.com/eliassjogreen/4by3",
"maintainer": "eliassjogreen",
+ "usb": {
+ "vid": "0xEEEE",
+ "pid": "0x2019",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_horizontal": {
"layout": [
diff --git a/keyboards/7c8/framework/config.h b/keyboards/7c8/framework/config.h
index 44a69bf4e58f..5ed43862ccfb 100644
--- a/keyboards/7c8/framework/config.h
+++ b/keyboards/7c8/framework/config.h
@@ -17,12 +17,6 @@
#pragma once
#include "config_common.h"
-#define VENDOR_ID 0x77C8
-#define PRODUCT_ID 0x0001
-#define DEVICE_VER 0x0000
-#define MANUFACTURER 7c8
-#define PRODUCT Framework
-
#define MATRIX_ROWS 10
#define MATRIX_COLS 6
diff --git a/keyboards/7c8/framework/info.json b/keyboards/7c8/framework/info.json
index f78ea1eb580f..1a2c0b300bba 100644
--- a/keyboards/7c8/framework/info.json
+++ b/keyboards/7c8/framework/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Framework",
+ "manufacturer": "7c8",
"url": "",
"maintainer": "stevennguyen",
+ "usb": {
+ "vid": "0x77C8",
+ "pid": "0x0001",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
diff --git a/keyboards/9key/config.h b/keyboards/9key/config.h
index b0462eb50fe2..622ccc7ae9c3 100644
--- a/keyboards/9key/config.h
+++ b/keyboards/9key/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see .
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x0007
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Bishop Keyboards
-#define PRODUCT 9Key
-
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 3
diff --git a/keyboards/9key/info.json b/keyboards/9key/info.json
index 326a63b12ca8..5508697df658 100644
--- a/keyboards/9key/info.json
+++ b/keyboards/9key/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "9key",
+ "keyboard_name": "9Key",
+ "manufacturer": "Bishop Keyboards",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0xFEED",
+ "pid": "0x0007",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}]
From dde4120a1e2b4234e68e40e47f02a7c166fbf90f Mon Sep 17 00:00:00 2001
From: Ryan
Date: Mon, 14 Mar 2022 10:55:47 +1100
Subject: [PATCH 017/221] ISP flashing guide: add instructions for flashing
STM32duino bootloader (#16568)
---
docs/isp_flashing_guide.md | 92 +++++++++++++++++++++++++++++++++++++-
1 file changed, 91 insertions(+), 1 deletion(-)
diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md
index febb34c57406..08f56e987b0e 100644
--- a/docs/isp_flashing_guide.md
+++ b/docs/isp_flashing_guide.md
@@ -4,7 +4,7 @@ In order to flash a microcontroller over USB, it needs something called a bootlo
However, it can sometimes happen that the bootloader becomes corrupted and needs reflashing, or you may want to change the bootloader to another one. It's not possible to do this with the existing bootloader, because, of course, it is already running, and cannot overwrite itself. Instead, you will need to ISP flash the microcontroller.
-There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed.
+There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed. The one current exception is the [STM32F103](#flashing-stm32duino-bootloader).
## Hardware
@@ -260,3 +260,93 @@ For mass production purposes, it is possible to join the bootloader and QMK firm
4. Save it as a new file, for example `__production.hex`.
You can then ISP flash this combined firmware instead, which allows you to skip the extra step of flashing the QMK firmware over USB.
+
+## Flashing STM32Duino Bootloader
+
+As mentioned above, *most* supported STM32 devices already possess a USB DFU bootloader which cannot be overwritten, however the ROM bootloader in the STM32F103 used on the Bluepill is not USB capable. In this case an ST-Link V2 dongle is required to upload the STM32Duino bootloader to the device. These can be readily purchased for relatively cheap on eBay and other places.
+
+This bootloader is a descendant of the Maple bootloader by Leaflabs, and is compatible with dfu-util.
+
+### Software
+
+To communicate with the ST-Link, you must install the following packages:
+
+* **macOS:** `brew install stlink openocd`
+* **Windows (MSYS2):** `pacman -S mingw-w64-x86_64-stlink mingw-w64-x86_64-openocd`
+* **Linux:** will vary by distribution, but will likely be `stlink` and `openocd` through your particular package manager
+
+Additionally, you may need to update the ST-Link's firmware with the [`STSW-LINK007`](https://www.st.com/en/development-tools/stsw-link007.html) application. Note you will be asked to provide your name and email address if you do not have an ST.com account (this does not create one).
+
+Finally, the bootloader binary itself can be downloaded from [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/bootloader_only_binaries/generic_boot20_pc13.bin).
+
+### Wiring
+
+Connect the four-pin header on the end of the Bluepill to the matching pins on the ST-Link (the pinout will usually be printed on the side):
+
+|ST-Link |Bluepill|
+|-------------|--------|
+|`GND` (6) |`GND` |
+|`SWCLK` (2) |`DCLK` |
+|`SWDIO` (4) |`DIO` |
+|`3.3V` (8) |`3.3` |
+
+### Flashing
+
+Firstly, make sure both jumpers on the Bluepill are set to 0.
+
+Check that the ST-Link can talk to the Bluepill by running `st-info --probe`:
+
+```
+Found 1 stlink programmers
+ version: V2J37S7
+ serial: 2C1219002B135937334D4E00
+ flash: 65536 (pagesize: 1024)
+ sram: 20480
+ chipid: 0x0410
+ descr: F1xx Medium-density
+```
+
+If the reported `chipid` is `0x0410`, everything is working. If it is `0x0000`, check your wiring, and try swapping the `SWDIO` and `SWCLK` pins, as some ST-Link dongles may have incorrect pinouts.
+
+Next, run the following command:
+
+```
+st-flash --reset --format binary write 0x08000000
+```
+
+where `` is the path to the bootloader `.bin` file above. You can run this command from the directory you downloaded it to, so that you can simply pass in the filename.
+
+If all goes well, you should get output similar to the following:
+
+```
+st-flash 1.7.0
+2022-03-08T12:16:30 INFO common.c: F1xx Medium-density: 20 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
+file generic_boot20_pc13.bin md5 checksum: 333c30605e739ce9bedee5999fdaf81b, stlink checksum: 0x0008e534
+2022-03-08T12:16:30 INFO common.c: Attempting to write 7172 (0x1c04) bytes to stm32 address: 134217728 (0x8000000)
+2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000000 erased
+2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000400 erased
+2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000800 erased
+2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000c00 erased
+2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001000 erased
+2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001400 erased
+2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001800 erased
+2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001c00 erased
+2022-03-08T12:16:31 INFO common.c: Finished erasing 8 pages of 1024 (0x400) bytes
+2022-03-08T12:16:31 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL
+2022-03-08T12:16:31 INFO flash_loader.c: Successfully loaded flash loader in sram
+2022-03-08T12:16:31 INFO flash_loader.c: Clear DFSR
+ 8/ 8 pages written
+2022-03-08T12:16:31 INFO common.c: Starting verification of write complete
+2022-03-08T12:16:31 INFO common.c: Flash written and verified! jolly good!
+2022-03-08T12:16:31 WARN common.c: NRST is not connected
+```
+
+Otherwise, if you receive an `Unknown memory region` error, run the following command to unlock the STM32F103:
+
+```
+openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init; reset halt; stm32f1x unlock 0; reset halt; exit"
+```
+
+Then re-plug the ST-Link and try again.
+
+After all of this, unplug the Bluepill from the ST-Link and connect it to USB. It should now be ready to flash using dfu-util, the QMK CLI or Toolbox.
From 921b9dad6c37575215231b34a3492ffb38eaeec2 Mon Sep 17 00:00:00 2001
From: Drashna Jaelre
Date: Sun, 13 Mar 2022 17:01:47 -0700
Subject: [PATCH 018/221] [Core] Move `has_mouse_report_changed` function to
`report.c` (#16543)
* Move 'has_mouse_report_changed' checkto report.c
* change mousekeys to use memcpy
* fix linting issues
---
quantum/mousekey.c | 24 ++++++++++++++----------
quantum/pointing_device.c | 13 +------------
quantum/pointing_device.h | 1 -
tmk_core/protocol/report.c | 13 +++++++++++++
tmk_core/protocol/report.h | 4 ++++
5 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/quantum/mousekey.c b/quantum/mousekey.c
index 8bafbf977a7f..0cbb472045b7 100644
--- a/quantum/mousekey.c
+++ b/quantum/mousekey.c
@@ -209,7 +209,7 @@ static uint8_t wheel_unit(void) {
void mousekey_task(void) {
// report cursor and scroll movement independently
- report_mouse_t const tmpmr = mouse_report;
+ report_mouse_t tmpmr = mouse_report;
mouse_report.x = 0;
mouse_report.y = 0;
@@ -251,8 +251,10 @@ void mousekey_task(void) {
}
}
- if (mouse_report.x || mouse_report.y || mouse_report.v || mouse_report.h) mousekey_send();
- mouse_report = tmpmr;
+ if (has_mouse_report_changed(&mouse_report, &tmpmr)) {
+ mousekey_send();
+ }
+ memcpy(&mouse_report, &tmpmr, sizeof(tmpmr));
}
void mousekey_on(uint8_t code) {
@@ -340,11 +342,11 @@ uint16_t w_intervals[mkspd_COUNT] = {MK_W_INTERVAL_UNMOD, MK_W_INTERVAL_0
void mousekey_task(void) {
// report cursor and scroll movement independently
- report_mouse_t const tmpmr = mouse_report;
- mouse_report.x = 0;
- mouse_report.y = 0;
- mouse_report.v = 0;
- mouse_report.h = 0;
+ report_mouse_t tmpmr = mouse_report;
+ mouse_report.x = 0;
+ mouse_report.y = 0;
+ mouse_report.v = 0;
+ mouse_report.h = 0;
if ((tmpmr.x || tmpmr.y) && timer_elapsed(last_timer_c) > c_intervals[mk_speed]) {
mouse_report.x = tmpmr.x;
@@ -355,8 +357,10 @@ void mousekey_task(void) {
mouse_report.h = tmpmr.h;
}
- if (mouse_report.x || mouse_report.y || mouse_report.v || mouse_report.h) mousekey_send();
- mouse_report = tmpmr;
+ if (has_mouse_report_changed(&mouse_report, &tmpmr)) {
+ mousekey_send();
+ }
+ memcpy(&mouse_report, &tmpmr, sizeof(tmpmr));
}
void adjust_speed(void) {
diff --git a/quantum/pointing_device.c b/quantum/pointing_device.c
index 47a0af45d2a1..a160647890d8 100644
--- a/quantum/pointing_device.c
+++ b/quantum/pointing_device.c
@@ -70,17 +70,6 @@ static report_mouse_t local_mouse_report = {};
extern const pointing_device_driver_t pointing_device_driver;
-/**
- * @brief Compares 2 mouse reports for difference and returns result
- *
- * @param[in] new_report report_mouse_t
- * @param[in] old_report report_mouse_t
- * @return bool result
- */
-__attribute__((weak)) bool has_mouse_report_changed(report_mouse_t new_report, report_mouse_t old_report) {
- return memcmp(&new_report, &old_report, sizeof(new_report));
-}
-
/**
* @brief Keyboard level code pointing device initialisation
*
@@ -165,7 +154,7 @@ __attribute__((weak)) void pointing_device_send(void) {
static report_mouse_t old_report = {};
// If you need to do other things, like debugging, this is the place to do it.
- if (has_mouse_report_changed(local_mouse_report, old_report)) {
+ if (has_mouse_report_changed(&local_mouse_report, &old_report)) {
host_mouse_send(&local_mouse_report);
}
// send it and 0 it out except for buttons, so those stay until they are explicity over-ridden using update_pointing_device
diff --git a/quantum/pointing_device.h b/quantum/pointing_device.h
index a6bdbf120c6a..5c0eaeaf3484 100644
--- a/quantum/pointing_device.h
+++ b/quantum/pointing_device.h
@@ -80,7 +80,6 @@ void pointing_device_task(void);
void pointing_device_send(void);
report_mouse_t pointing_device_get_report(void);
void pointing_device_set_report(report_mouse_t mouse_report);
-bool has_mouse_report_changed(report_mouse_t new_report, report_mouse_t old_report);
uint16_t pointing_device_get_cpi(void);
void pointing_device_set_cpi(uint16_t cpi);
diff --git a/tmk_core/protocol/report.c b/tmk_core/protocol/report.c
index 854b59ae4817..5755098c60f1 100644
--- a/tmk_core/protocol/report.c
+++ b/tmk_core/protocol/report.c
@@ -278,3 +278,16 @@ void clear_keys_from_report(report_keyboard_t* keyboard_report) {
#endif
memset(keyboard_report->keys, 0, sizeof(keyboard_report->keys));
}
+
+#ifdef MOUSE_ENABLE
+/**
+ * @brief Compares 2 mouse reports for difference and returns result
+ *
+ * @param[in] new_report report_mouse_t
+ * @param[in] old_report report_mouse_t
+ * @return bool result
+ */
+__attribute__((weak)) bool has_mouse_report_changed(report_mouse_t* new_report, report_mouse_t* old_report) {
+ return memcmp(new_report, old_report, sizeof(report_mouse_t));
+}
+#endif
diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h
index 1adc892f3b76..7bbeb78af797 100644
--- a/tmk_core/protocol/report.h
+++ b/tmk_core/protocol/report.h
@@ -320,6 +320,10 @@ void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key);
void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key);
void clear_keys_from_report(report_keyboard_t* keyboard_report);
+#ifdef MOUSE_ENABLE
+bool has_mouse_report_changed(report_mouse_t* new_report, report_mouse_t* old_report);
+#endif
+
#ifdef __cplusplus
}
#endif
From 8d90cf36f1a8484bdb7fcc0660887efaf0b7c106 Mon Sep 17 00:00:00 2001
From: jack <0x6A73@pm.me>
Date: Sun, 13 Mar 2022 19:04:11 -0600
Subject: [PATCH 019/221] Fix 40percentclub USB descriptors (#16638)
---
keyboards/40percentclub/nein/info.json | 2 +-
keyboards/40percentclub/nori/info.json | 2 +-
keyboards/40percentclub/ut47/info.json | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/keyboards/40percentclub/nein/info.json b/keyboards/40percentclub/nein/info.json
index 812853d0fef1..09d25e30dec4 100644
--- a/keyboards/40percentclub/nein/info.json
+++ b/keyboards/40percentclub/nein/info.json
@@ -5,7 +5,7 @@
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
- "vid": "0x9999",
+ "pid": "0x9999",
"device_version": "99.9.9"
},
"layouts": {
diff --git a/keyboards/40percentclub/nori/info.json b/keyboards/40percentclub/nori/info.json
index 536696670523..d6415b73f919 100644
--- a/keyboards/40percentclub/nori/info.json
+++ b/keyboards/40percentclub/nori/info.json
@@ -5,7 +5,7 @@
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
- "pid": "0xA0C",
+ "pid": "0x0A0C",
"device_version": "4.4.4"
},
"layouts": {
diff --git a/keyboards/40percentclub/ut47/info.json b/keyboards/40percentclub/ut47/info.json
index e3173098e4b1..e0bd0264cb4f 100644
--- a/keyboards/40percentclub/ut47/info.json
+++ b/keyboards/40percentclub/ut47/info.json
@@ -5,7 +5,7 @@
"maintainer": "qmk",
"usb": {
"vid": "0x4025",
- "vid": "0x7574",
+ "pid": "0x7574",
"device_version": "0.0.1"
},
"layouts": {
From b8574efcd67a394c423ac29ce280ee09517a1aee Mon Sep 17 00:00:00 2001
From: Drashna Jaelre
Date: Sun, 13 Mar 2022 18:11:42 -0700
Subject: [PATCH 020/221] Fix oneshot toggle logic (#16630)
* Fix oneshot toggle logic
* Enable oneshots by default
* Decrement eeconfig magic number due to eeconfig changes
---
quantum/action.c | 10 +++++-----
quantum/action_util.c | 15 +++++++--------
quantum/eeconfig.c | 2 +-
quantum/eeconfig.h | 2 +-
quantum/keycode_config.h | 2 +-
5 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/quantum/action.c b/quantum/action.c
index 60301fa6065d..ef059f0e2a96 100644
--- a/quantum/action.c
+++ b/quantum/action.c
@@ -101,7 +101,7 @@ void action_exec(keyevent_t event) {
keyrecord_t record = {.event = event};
#ifndef NO_ACTION_ONESHOT
- if (!keymap_config.oneshot_disable) {
+ if (keymap_config.oneshot_enable) {
# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
if (has_oneshot_layer_timed_out()) {
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
@@ -258,7 +258,7 @@ void process_record(keyrecord_t *record) {
if (!process_record_quantum(record)) {
#ifndef NO_ACTION_ONESHOT
- if (is_oneshot_layer_active() && record->event.pressed && !keymap_config.oneshot_disable) {
+ if (is_oneshot_layer_active() && record->event.pressed && keymap_config.oneshot_enable) {
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
}
#endif
@@ -323,7 +323,7 @@ void process_action(keyrecord_t *record, action_t action) {
# ifdef SWAP_HANDS_ENABLE
&& !(action.kind.id == ACT_SWAP_HANDS && action.swap.code == OP_SH_ONESHOT)
# endif
- && !keymap_config.oneshot_disable) {
+ && keymap_config.oneshot_enable) {
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
do_release_oneshot = !is_oneshot_layer_active();
}
@@ -367,7 +367,7 @@ void process_action(keyrecord_t *record, action_t action) {
# ifndef NO_ACTION_ONESHOT
case MODS_ONESHOT:
// Oneshot modifier
- if (keymap_config.oneshot_disable) {
+ if (!keymap_config.oneshot_enable) {
if (event.pressed) {
if (mods) {
if (IS_MOD(action.key.code) || action.key.code == KC_NO) {
@@ -613,7 +613,7 @@ void process_action(keyrecord_t *record, action_t action) {
# ifndef NO_ACTION_ONESHOT
case OP_ONESHOT:
// Oneshot modifier
- if (keymap_config.oneshot_disable) {
+ if (!keymap_config.oneshot_enable) {
if (event.pressed) {
layer_on(action.layer_tap.val);
} else {
diff --git a/quantum/action_util.c b/quantum/action_util.c
index cf81370d4a8d..738410a4acec 100644
--- a/quantum/action_util.c
+++ b/quantum/action_util.c
@@ -155,7 +155,7 @@ void clear_oneshot_swaphands(void) {
* FIXME: needs doc
*/
void set_oneshot_layer(uint8_t layer, uint8_t state) {
- if (!keymap_config.oneshot_disable) {
+ if (keymap_config.oneshot_enable) {
oneshot_layer_data = layer << 3 | state;
layer_on(layer);
# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
@@ -184,7 +184,7 @@ void reset_oneshot_layer(void) {
void clear_oneshot_layer_state(oneshot_fullfillment_t state) {
uint8_t start_state = oneshot_layer_data;
oneshot_layer_data &= ~state;
- if ((!get_oneshot_layer_state() && start_state != oneshot_layer_data) && !keymap_config.oneshot_disable) {
+ if ((!get_oneshot_layer_state() && start_state != oneshot_layer_data) && keymap_config.oneshot_enable) {
layer_off(get_oneshot_layer());
reset_oneshot_layer();
}
@@ -202,9 +202,8 @@ bool is_oneshot_layer_active(void) {
* FIXME: needs doc
*/
void oneshot_set(bool active) {
- const bool disable = !active;
- if (keymap_config.oneshot_disable != disable) {
- keymap_config.oneshot_disable = disable;
+ if (keymap_config.oneshot_enable != active) {
+ keymap_config.oneshot_enable = active;
eeconfig_update_keymap(keymap_config.raw);
clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
dprintf("Oneshot: active: %d\n", active);
@@ -216,7 +215,7 @@ void oneshot_set(bool active) {
* FIXME: needs doc
*/
void oneshot_toggle(void) {
- oneshot_set(!keymap_config.oneshot_disable);
+ oneshot_set(!keymap_config.oneshot_enable);
}
/** \brief enable oneshot
@@ -236,7 +235,7 @@ void oneshot_disable(void) {
}
bool is_oneshot_enabled(void) {
- return !keymap_config.oneshot_disable;
+ return keymap_config.oneshot_enable;
}
#endif
@@ -414,7 +413,7 @@ void del_oneshot_mods(uint8_t mods) {
* FIXME: needs doc
*/
void set_oneshot_mods(uint8_t mods) {
- if (!keymap_config.oneshot_disable) {
+ if (keymap_config.oneshot_enable) {
if (oneshot_mods != mods) {
# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
oneshot_time = timer_read();
diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c
index 14cd5887f442..0ff9996ca413 100644
--- a/quantum/eeconfig.c
+++ b/quantum/eeconfig.c
@@ -46,7 +46,7 @@ void eeconfig_init_quantum(void) {
eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0);
default_layer_state = 0;
eeprom_update_byte(EECONFIG_KEYMAP_LOWER_BYTE, 0);
- eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, 0);
+ eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, 0x4);
eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0);
eeprom_update_byte(EECONFIG_BACKLIGHT, 0);
eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default
diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h
index f3cd1867ab43..565a0dbe5b94 100644
--- a/quantum/eeconfig.h
+++ b/quantum/eeconfig.h
@@ -21,7 +21,7 @@ along with this program. If not, see .
#include
#ifndef EECONFIG_MAGIC_NUMBER
-# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE9 // When changing, decrement this value to avoid future re-init issues
+# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE8 // When changing, decrement this value to avoid future re-init issues
#endif
#define EECONFIG_MAGIC_NUMBER_OFF (uint16_t)0xFFFF
diff --git a/quantum/keycode_config.h b/quantum/keycode_config.h
index d7e334fdc8fa..a2cb025ed2df 100644
--- a/quantum/keycode_config.h
+++ b/quantum/keycode_config.h
@@ -37,7 +37,7 @@ typedef union {
bool nkro : 1;
bool swap_lctl_lgui : 1;
bool swap_rctl_rgui : 1;
- bool oneshot_disable : 1;
+ bool oneshot_enable : 1;
};
} keymap_config_t;
From 86a35483a12a12bcf8d0005ebc7e4e2bca3ab5b3 Mon Sep 17 00:00:00 2001
From: jack <0x6A73@pm.me>
Date: Sun, 13 Mar 2022 19:53:53 -0600
Subject: [PATCH 021/221] Mousekeys fix (#16640)
---
quantum/mousekey.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/quantum/mousekey.c b/quantum/mousekey.c
index 0cbb472045b7..64d0e6668205 100644
--- a/quantum/mousekey.c
+++ b/quantum/mousekey.c
@@ -16,6 +16,7 @@
*/
#include
+#include
#include "keycode.h"
#include "host.h"
#include "timer.h"
From c17323b0f5fddf891929e6a25232825769a64e28 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Mon, 14 Mar 2022 01:56:52 +0000
Subject: [PATCH 022/221] bolsa/damapad - Fix missing layout macro (#16639)
---
keyboards/bolsa/damapad/damapad.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/keyboards/bolsa/damapad/damapad.h b/keyboards/bolsa/damapad/damapad.h
index da0a4d863eda..9f0d0d41701d 100644
--- a/keyboards/bolsa/damapad/damapad.h
+++ b/keyboards/bolsa/damapad/damapad.h
@@ -30,3 +30,13 @@ along with this program. If not, see .
{ K10, K11, K12, K13, K14, K15 }, \
{ K20, K21, XXX, K23, XXX, K25 } \
}
+
+#define LAYOUT_bar( \
+ K00, K01, K02, K03, K04, K05, \
+ K10, K11, K12, K13, K14, K15, \
+ K20, K23, K25 \
+) { \
+ { K00, K01, K02, K03, K04, K05 }, \
+ { K10, K11, K12, K13, K14, K15 }, \
+ { K20, XXX, XXX, K23, XXX, K25 } \
+}
From 5fb269b2b49f31dcee34e3e088ef77cd016d0450 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Tue, 15 Mar 2022 00:57:44 +1100
Subject: [PATCH 023/221] keebio/iris: Add ifdefs to encoder callbacks (#16642)
---
keyboards/keebio/iris/rev3/rev3.c | 2 ++
keyboards/keebio/iris/rev4/rev4.c | 2 ++
keyboards/keebio/iris/rev5/rev5.c | 2 ++
keyboards/keebio/iris/rev6/rev6.c | 2 ++
4 files changed, 8 insertions(+)
diff --git a/keyboards/keebio/iris/rev3/rev3.c b/keyboards/keebio/iris/rev3/rev3.c
index e874b9beaeca..2b3d6b1d9627 100644
--- a/keyboards/keebio/iris/rev3/rev3.c
+++ b/keyboards/keebio/iris/rev3/rev3.c
@@ -36,6 +36,7 @@ void eeconfig_init_kb(void) {
eeconfig_init_user();
}
+#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@@ -53,3 +54,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
+#endif
diff --git a/keyboards/keebio/iris/rev4/rev4.c b/keyboards/keebio/iris/rev4/rev4.c
index 36ef461cd0f3..112c86f413d5 100644
--- a/keyboards/keebio/iris/rev4/rev4.c
+++ b/keyboards/keebio/iris/rev4/rev4.c
@@ -17,6 +17,7 @@ void eeconfig_init_kb(void) {
eeconfig_init_user();
}
+#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@@ -34,3 +35,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
+#endif
diff --git a/keyboards/keebio/iris/rev5/rev5.c b/keyboards/keebio/iris/rev5/rev5.c
index 2a89c6923b0e..b597c05de8c1 100644
--- a/keyboards/keebio/iris/rev5/rev5.c
+++ b/keyboards/keebio/iris/rev5/rev5.c
@@ -13,6 +13,7 @@ along with this program. If not, see .
*/
#include "rev5.h"
+#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@@ -30,3 +31,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
+#endif
diff --git a/keyboards/keebio/iris/rev6/rev6.c b/keyboards/keebio/iris/rev6/rev6.c
index 152df0b2f9b3..8b612c35550d 100644
--- a/keyboards/keebio/iris/rev6/rev6.c
+++ b/keyboards/keebio/iris/rev6/rev6.c
@@ -64,6 +64,7 @@ led_config_t g_led_config = { {
} };
#endif
+#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
@@ -81,3 +82,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return false;
}
+#endif
From 6a6a333c75e60692c4497aafe949e6304b22f8b8 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Tue, 15 Mar 2022 00:58:05 +1100
Subject: [PATCH 024/221] Disable RGB matrix pixel animations for some boards
(#16643)
* idobao/id87/v2: disable RGB matrix pixel animations
* Same for two more boards
---
keyboards/dztech/dz60rgb_wkl/v2/config.h | 3 ---
keyboards/idobao/id87/v2/config.h | 3 ---
keyboards/kbdfans/kbd67/mkiirgb/v4/config.h | 3 ---
3 files changed, 9 deletions(-)
diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h
index 5985fccea714..5d715a1e0d9a 100644
--- a/keyboards/dztech/dz60rgb_wkl/v2/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h
@@ -69,9 +69,6 @@
# define ENABLE_RGB_MATRIX_HUE_BREATHING
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_PIXEL_RAIN
-# define ENABLE_RGB_MATRIX_PIXEL_FLOW
-# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN
diff --git a/keyboards/idobao/id87/v2/config.h b/keyboards/idobao/id87/v2/config.h
index 8a2c58aa2dd3..3ef24f0bc5fd 100644
--- a/keyboards/idobao/id87/v2/config.h
+++ b/keyboards/idobao/id87/v2/config.h
@@ -79,9 +79,6 @@
# define ENABLE_RGB_MATRIX_HUE_BREATHING
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_PIXEL_RAIN
-# define ENABLE_RGB_MATRIX_PIXEL_FLOW
-# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h
index 7de9281d40ed..9960022a1394 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h
@@ -94,9 +94,6 @@
# define ENABLE_RGB_MATRIX_HUE_BREATHING
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_PIXEL_RAIN
-# define ENABLE_RGB_MATRIX_PIXEL_FLOW
-# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
From a12d58c6c965254bdf40ae0f02a6644e183eb17c Mon Sep 17 00:00:00 2001
From: Danny
Date: Mon, 14 Mar 2022 14:08:10 -0400
Subject: [PATCH 025/221] [Keyboard] Add BAMFK-1 (#16409)
Co-authored-by: Ryan
---
keyboards/keebio/bamfk1/bamfk1.c | 4 +
keyboards/keebio/bamfk1/bamfk1.h | 14 +++
keyboards/keebio/bamfk1/config.h | 113 ++++++++++++++++++
keyboards/keebio/bamfk1/info.json | 19 +++
.../keebio/bamfk1/keymaps/default/keymap.c | 39 ++++++
.../keebio/bamfk1/keymaps/default/rules.mk | 1 +
keyboards/keebio/bamfk1/keymaps/via/keymap.c | 39 ++++++
keyboards/keebio/bamfk1/keymaps/via/rules.mk | 2 +
keyboards/keebio/bamfk1/readme.md | 27 +++++
keyboards/keebio/bamfk1/rules.mk | 21 ++++
keyboards/keebio/encoder_actions.c | 68 +++++++++++
keyboards/keebio/encoder_actions.h | 21 ++++
12 files changed, 368 insertions(+)
create mode 100644 keyboards/keebio/bamfk1/bamfk1.c
create mode 100644 keyboards/keebio/bamfk1/bamfk1.h
create mode 100644 keyboards/keebio/bamfk1/config.h
create mode 100644 keyboards/keebio/bamfk1/info.json
create mode 100644 keyboards/keebio/bamfk1/keymaps/default/keymap.c
create mode 100644 keyboards/keebio/bamfk1/keymaps/default/rules.mk
create mode 100644 keyboards/keebio/bamfk1/keymaps/via/keymap.c
create mode 100644 keyboards/keebio/bamfk1/keymaps/via/rules.mk
create mode 100644 keyboards/keebio/bamfk1/readme.md
create mode 100644 keyboards/keebio/bamfk1/rules.mk
create mode 100644 keyboards/keebio/encoder_actions.c
create mode 100644 keyboards/keebio/encoder_actions.h
diff --git a/keyboards/keebio/bamfk1/bamfk1.c b/keyboards/keebio/bamfk1/bamfk1.c
new file mode 100644
index 000000000000..eddd7e624efb
--- /dev/null
+++ b/keyboards/keebio/bamfk1/bamfk1.c
@@ -0,0 +1,4 @@
+// Copyright 2021 Danny Nguyen (@nooges)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "bamfk1.h"
diff --git a/keyboards/keebio/bamfk1/bamfk1.h b/keyboards/keebio/bamfk1/bamfk1.h
new file mode 100644
index 000000000000..be1fd0080884
--- /dev/null
+++ b/keyboards/keebio/bamfk1/bamfk1.h
@@ -0,0 +1,14 @@
+// Copyright 2021 Danny Nguyen (@nooges)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k00, e01, e02, \
+ e01a, e01b, e02a, e02b \
+) { \
+ { k00, e01, e02, KC_NO }, \
+ { e01a, e01b, e02a, e02b } \
+}
diff --git a/keyboards/keebio/bamfk1/config.h b/keyboards/keebio/bamfk1/config.h
new file mode 100644
index 000000000000..5cd86a9d163f
--- /dev/null
+++ b/keyboards/keebio/bamfk1/config.h
@@ -0,0 +1,113 @@
+// Copyright 2021 Danny Nguyen (@nooges)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xCB10
+#define PRODUCT_ID 0x1111
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Keebio
+#define PRODUCT BAMFK-1
+
+/* key matrix size */
+#define MATRIX_ROWS 2
+#define MATRIX_COLS 4
+
+/*
+ * Keyboard Matrix Assignments
+ */
+
+#define DIRECT_PINS { \
+ { E6, B6, D6, NO_PIN }, \
+ { NO_PIN, NO_PIN, NO_PIN, NO_PIN } \
+}
+#define AUDIO_PIN C6
+#ifdef AUDIO_ENABLE
+# define STARTUP_SONG SONG(STARTUP_SOUND)
+#endif
+
+#define ENCODERS_PAD_A { C7, D7 }
+#define ENCODERS_PAD_B { B5, D4 }
+#define ENCODERS 2
+#define ENCODERS_CW_KEY { { 1, 1 }, { 3, 1 } }
+#define ENCODERS_CCW_KEY { { 0, 1 }, { 2, 1 } }
+
+#define RGB_DI_PIN D3
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 16
+# define RGBLIGHT_HUE_STEP 8
+# define RGBLIGHT_SAT_STEP 8
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+# 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
+#endif
+#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * 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
+
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keebio/bamfk1/info.json b/keyboards/keebio/bamfk1/info.json
new file mode 100644
index 000000000000..817eb98af017
--- /dev/null
+++ b/keyboards/keebio/bamfk1/info.json
@@ -0,0 +1,19 @@
+{
+ "keyboard_name": "BAMFK-1",
+ "url": "https://keeb.io",
+ "maintainer": "nooges",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label": "k00", "x": 1.5, "y": 0, "h":2, "w": 2},
+ {"label": "k01", "x": 0.5, "y": 2.25},
+ {"label": "k02", "x": 3.5, "y": 2.25},
+
+ {"label": "k10", "x": 0, "y": 3.5},
+ {"label": "k11", "x": 1, "y": 3.5},
+ {"label": "k12", "x": 3, "y": 3.5},
+ {"label": "k13", "x": 4, "y": 3.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keebio/bamfk1/keymaps/default/keymap.c b/keyboards/keebio/bamfk1/keymaps/default/keymap.c
new file mode 100644
index 000000000000..aa0780eafc1f
--- /dev/null
+++ b/keyboards/keebio/bamfk1/keymaps/default/keymap.c
@@ -0,0 +1,39 @@
+// Copyright 2021 Danny Nguyen (@nooges)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _MAIN,
+ _FN1,
+ _FN2,
+ _FN3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_MAIN] = LAYOUT(
+ KC_A, // Big Switch
+ MO(1), KC_MUTE, // Encoder presses
+ KC_DOWN, KC_UP, // Left encoder turns
+ KC_VOLD, KC_VOLU // Right encoder turns
+ ),
+ [_FN1] = LAYOUT(
+ KC_B, // Big Switch
+ _______, KC_C, // Encoder presses
+ KC_PGDN, KC_PGUP, // Left encoder turns
+ KC_VOLU, KC_VOLD // Right encoder turns
+ ),
+ [_FN2] = LAYOUT(
+ _______, // Big Switch
+ _______, _______, // Encoder presses
+ _______, _______, // Left encoder turns
+ _______, _______ // Right encoder turns
+ ),
+ [_FN3] = LAYOUT(
+ _______, // Big Switch
+ _______, _______, // Encoder presses
+ _______, _______, // Left encoder turns
+ _______, _______ // Right encoder turns
+ )
+};
diff --git a/keyboards/keebio/bamfk1/keymaps/default/rules.mk b/keyboards/keebio/bamfk1/keymaps/default/rules.mk
new file mode 100644
index 000000000000..4da205a168c7
--- /dev/null
+++ b/keyboards/keebio/bamfk1/keymaps/default/rules.mk
@@ -0,0 +1 @@
+LTO_ENABLE = yes
diff --git a/keyboards/keebio/bamfk1/keymaps/via/keymap.c b/keyboards/keebio/bamfk1/keymaps/via/keymap.c
new file mode 100644
index 000000000000..e7cde2d7ee55
--- /dev/null
+++ b/keyboards/keebio/bamfk1/keymaps/via/keymap.c
@@ -0,0 +1,39 @@
+// Copyright 2021 Danny Nguyen (@nooges)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _MAIN,
+ _FN1,
+ _FN2,
+ _FN3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_MAIN] = LAYOUT(
+ RGB_MOD, // Big Switch
+ FN_MO13, KC_MUTE, // Encoder presses
+ KC_DOWN, KC_UP, // Left encoder turns
+ KC_VOLD, KC_VOLU // Right encoder turns
+ ),
+ [_FN1] = LAYOUT(
+ KC_B, // Big Switch
+ _______, KC_C, // Encoder presses
+ KC_PGDN, KC_PGUP, // Left encoder turns
+ KC_VOLU, KC_VOLD // Right encoder turns
+ ),
+ [_FN2] = LAYOUT(
+ _______, // Big Switch
+ _______, _______, // Encoder presses
+ _______, _______, // Left encoder turns
+ _______, _______ // Right encoder turns
+ ),
+ [_FN3] = LAYOUT(
+ _______, // Big Switch
+ _______, _______, // Encoder presses
+ _______, _______, // Left encoder turns
+ _______, _______ // Right encoder turns
+ )
+};
diff --git a/keyboards/keebio/bamfk1/keymaps/via/rules.mk b/keyboards/keebio/bamfk1/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/keebio/bamfk1/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/keebio/bamfk1/readme.md b/keyboards/keebio/bamfk1/readme.md
new file mode 100644
index 000000000000..a90ee8ac8cd1
--- /dev/null
+++ b/keyboards/keebio/bamfk1/readme.md
@@ -0,0 +1,27 @@
+# BAMFK-1
+
+![bamfk1](https://cdn.shopify.com/s/files/1/1851/5125/products/bamfk-1-back_1100x.png?v=1635304218)
+
+PCB for the Big Switch with support for horizontal rotary encoders.
+
+* Keyboard Maintainer: [Keebio](https://github.com/nooges)
+* Hardware Supported: BAMFK-1 PCB
+* Hardware Availability: [Keebio](https://keeb.io/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make keebio/bamfk1:default
+
+Flashing example for this keyboard:
+
+ make keebio/bamfk1: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 `RESET` if it is available
diff --git a/keyboards/keebio/bamfk1/rules.mk b/keyboards/keebio/bamfk1/rules.mk
new file mode 100644
index 000000000000..abcf10c8716a
--- /dev/null
+++ b/keyboards/keebio/bamfk1/rules.mk
@@ -0,0 +1,21 @@
+# 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 = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = yes # Audio output
+ENCODER_ENABLE = yes
+
+SRC += encoder_actions.c
diff --git a/keyboards/keebio/encoder_actions.c b/keyboards/keebio/encoder_actions.c
new file mode 100644
index 000000000000..c4e49813f44b
--- /dev/null
+++ b/keyboards/keebio/encoder_actions.c
@@ -0,0 +1,68 @@
+/* Copyright 2020 Neil Brian Ramirez
+ * Copyright 2021 drashna jael're (@drashna)
+ *
+ * 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 3 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 .
+ */
+
+#include "encoder_actions.h"
+
+#if defined(ENCODER_ENABLE)
+
+# ifdef ENCODERS
+static uint8_t encoder_state[ENCODERS] = {0};
+static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
+static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
+# endif
+
+void encoder_action_unregister(void) {
+# ifdef ENCODERS
+ for (int index = 0; index < ENCODERS; ++index) {
+ if (encoder_state[index]) {
+ keyevent_t encoder_event = (keyevent_t) {
+ .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = false,
+ .time = (timer_read() | 1)
+ };
+ encoder_state[index] = 0;
+ action_exec(encoder_event);
+ }
+ }
+# endif
+}
+
+void encoder_action_register(uint8_t index, bool clockwise) {
+# ifdef ENCODERS
+ keyevent_t encoder_event = (keyevent_t) {
+ .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = true,
+ .time = (timer_read() | 1)
+ };
+ encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
+ action_exec(encoder_event);
+# endif
+}
+
+void matrix_scan_kb(void) {
+ encoder_action_unregister();
+ matrix_scan_user();
+}
+
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ encoder_action_register(index, clockwise);
+ // don't return user actions, because they are in the keymap
+ // encoder_update_user(index, clockwise);
+ return true;
+};
+
+#endif
diff --git a/keyboards/keebio/encoder_actions.h b/keyboards/keebio/encoder_actions.h
new file mode 100644
index 000000000000..2484af52ae18
--- /dev/null
+++ b/keyboards/keebio/encoder_actions.h
@@ -0,0 +1,21 @@
+/* Copyright 2020 Neil Brian Ramirez
+ *
+ * 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 3 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 .
+ */
+
+#include "quantum.h"
+
+void encoder_action_unregister(void);
+
+void encoder_action_register(uint8_t index, bool clockwise);
From 7e669421f86843d398b41befe1950a2e2ce054a0 Mon Sep 17 00:00:00 2001
From: Stefan Kerkmann
Date: Mon, 14 Mar 2022 21:06:21 +0100
Subject: [PATCH 026/221] Rename TICK to TICK_EVENT to prevent naming conflicts
(#16649)
---
quantum/keyboard.c | 2 +-
quantum/keyboard.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/quantum/keyboard.c b/quantum/keyboard.c
index ba5609f0aabf..bb6463bf1975 100644
--- a/quantum/keyboard.c
+++ b/quantum/keyboard.c
@@ -489,7 +489,7 @@ bool matrix_scan_task(void) {
// we can get here with some keys processed now.
if (!keys_processed)
#endif
- action_exec(TICK);
+ action_exec(TICK_EVENT);
MATRIX_LOOP_END:
diff --git a/quantum/keyboard.h b/quantum/keyboard.h
index 62661596c124..fe0736a515d7 100644
--- a/quantum/keyboard.h
+++ b/quantum/keyboard.h
@@ -74,7 +74,7 @@ static inline bool IS_RELEASED(keyevent_t event) {
#define MAKE_KEYEVENT(row_num, col_num, press) ((keyevent_t){.key = MAKE_KEYPOS((row_num), (col_num)), .pressed = (press), .time = (timer_read() | 1)})
/* Tick event */
-#define TICK MAKE_KEYEVENT(KEYLOC_TICK, KEYLOC_TICK, false)
+#define TICK_EVENT MAKE_KEYEVENT(KEYLOC_TICK, KEYLOC_TICK, false)
#ifdef ENCODER_MAP_ENABLE
/* Encoder events */
From 6c11579876cc721b46c734ffd34b66102726df58 Mon Sep 17 00:00:00 2001
From: Yakbats
Date: Mon, 14 Mar 2022 15:05:39 -0700
Subject: [PATCH 027/221] [Keyboard] Add via keymap to AL1 (#16499)
---
keyboards/al1/config.h | 4 +--
keyboards/al1/keymaps/via/keymap.c | 46 +++++++++++++++++++++++++++++
keyboards/al1/keymaps/via/readme.md | 1 +
keyboards/al1/keymaps/via/rules.mk | 2 ++
4 files changed, 51 insertions(+), 2 deletions(-)
create mode 100644 keyboards/al1/keymaps/via/keymap.c
create mode 100644 keyboards/al1/keymaps/via/readme.md
create mode 100644 keyboards/al1/keymaps/via/rules.mk
diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h
index b003a9cd6c25..c8edb8ebfe54 100644
--- a/keyboards/al1/config.h
+++ b/keyboards/al1/config.h
@@ -27,8 +27,8 @@ along with this program. If not, see .
#define PRODUCT AL1
/* key matrix size */
-#define MATRIX_ROWS 7
-#define MATRIX_COLS 20
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 16
#define LED_NUM_LOCK_PIN D0
#define LED_CAPS_LOCK_PIN B7
diff --git a/keyboards/al1/keymaps/via/keymap.c b/keyboards/al1/keymaps/via/keymap.c
new file mode 100644
index 000000000000..931755270bbe
--- /dev/null
+++ b/keyboards/al1/keymaps/via/keymap.c
@@ -0,0 +1,46 @@
+/* Copyright 2018 MechMerlin
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_P7, KC_P8, KC_P9, KC_PPLS,
+ 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_P4, KC_P5, KC_P6,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ),
+
+ [1] = LAYOUT(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ 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 ),
+
+ [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 ),
+};
diff --git a/keyboards/al1/keymaps/via/readme.md b/keyboards/al1/keymaps/via/readme.md
new file mode 100644
index 000000000000..458df9ca1364
--- /dev/null
+++ b/keyboards/al1/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The via keymap for al1
diff --git a/keyboards/al1/keymaps/via/rules.mk b/keyboards/al1/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/al1/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
From a939adb55c53d7cd7cbcc26e81ae6ee700ad3f6c Mon Sep 17 00:00:00 2001
From: ethsol
Date: Mon, 14 Mar 2022 23:20:50 +0100
Subject: [PATCH 028/221] Sentence correction (#16650)
---
docs/feature_bootmagic.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/feature_bootmagic.md b/docs/feature_bootmagic.md
index 148ea92b9e26..6b3c7e45fd14 100644
--- a/docs/feature_bootmagic.md
+++ b/docs/feature_bootmagic.md
@@ -51,7 +51,7 @@ void bootmagic_lite(void) {
}
```
-You can additional feature here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
+You can define additional logic here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
## Addenda
From 7fde30979986732433126d50911efdef928c2b64 Mon Sep 17 00:00:00 2001
From: mechlovin <57231893+mechlovin@users.noreply.github.com>
Date: Tue, 15 Mar 2022 07:23:57 +0700
Subject: [PATCH 029/221] [Keyboard] Add Kay65 PCB by Team Mechlovin' (#15565)
* add kay65 PCB
* update
* update
* Update readme.md
* Update keyboards/mechlovin/kay65/rev1/rules.mk
* Update keyboards/mechlovin/olly/jf/rules.mk
* Update keyboards/mechlovin/kay65/rev1/rules.mk
* Update keyboards/mechlovin/kay65/rev1/info.json
* Update keymap.c
* update
* Update keyboards/mechlovin/kay65/rev1/rev1.h
* Update keyboards/mechlovin/kay65/rev1/info.json
* Update keyboards/mechlovin/kay65/rev1/info.json
* Update keyboards/mechlovin/kay65/rev1/rules.mk
* Update keymap.c
* Update readme.md
* Update keyboards/mechlovin/olly/jf/readme.md
* Update keyboards/mechlovin/kay65/rev1/config.h
---
keyboards/mechlovin/kay65/rev1/config.h | 147 ++++++++++++
keyboards/mechlovin/kay65/rev1/info.json | 223 ++++++++++++++++++
.../kay65/rev1/keymaps/default/keymap.c | 52 ++++
.../kay65/rev1/keymaps/default/readme.md | 1 +
.../mechlovin/kay65/rev1/keymaps/via/keymap.c | 72 ++++++
.../kay65/rev1/keymaps/via/readme.md | 1 +
.../mechlovin/kay65/rev1/keymaps/via/rules.mk | 2 +
keyboards/mechlovin/kay65/rev1/readme.md | 27 +++
keyboards/mechlovin/kay65/rev1/rev1.c | 25 ++
keyboards/mechlovin/kay65/rev1/rev1.h | 62 +++++
keyboards/mechlovin/kay65/rev1/rules.mk | 20 ++
keyboards/mechlovin/olly/jf/config.h | 4 +
.../mechlovin/olly/jf/keymaps/via/config.h | 3 +-
.../mechlovin/olly/jf/keymaps/via/keymap.c | 9 +-
keyboards/mechlovin/olly/jf/readme.md | 5 +-
15 files changed, 642 insertions(+), 11 deletions(-)
create mode 100644 keyboards/mechlovin/kay65/rev1/config.h
create mode 100644 keyboards/mechlovin/kay65/rev1/info.json
create mode 100644 keyboards/mechlovin/kay65/rev1/keymaps/default/keymap.c
create mode 100644 keyboards/mechlovin/kay65/rev1/keymaps/default/readme.md
create mode 100644 keyboards/mechlovin/kay65/rev1/keymaps/via/keymap.c
create mode 100644 keyboards/mechlovin/kay65/rev1/keymaps/via/readme.md
create mode 100644 keyboards/mechlovin/kay65/rev1/keymaps/via/rules.mk
create mode 100644 keyboards/mechlovin/kay65/rev1/readme.md
create mode 100644 keyboards/mechlovin/kay65/rev1/rev1.c
create mode 100644 keyboards/mechlovin/kay65/rev1/rev1.h
create mode 100644 keyboards/mechlovin/kay65/rev1/rules.mk
diff --git a/keyboards/mechlovin/kay65/rev1/config.h b/keyboards/mechlovin/kay65/rev1/config.h
new file mode 100644
index 000000000000..cc1b9916724a
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/config.h
@@ -0,0 +1,147 @@
+/*
+Copyright 2021 Mechlovin'
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4D4C
+#define PRODUCT_ID 0x6502
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Team Mechlovin
+#define PRODUCTION Kay65 Rev. 1
+
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B7, D3, D5, D4, C6 }
+#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, C7, E6, B0, D2, D1, D0, B3, B2, B1 }
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+//#define LED_NUM_LOCK_PIN B0
+#define LED_CAPS_LOCK_PIN D6
+//#define LED_SCROLL_LOCK_PIN B2
+//#define LED_COMPOSE_PIN B3
+//#define LED_KANA_PIN B4
+
+//#define BACKLIGHT_PIN B7
+//#define BACKLIGHT_LEVELS 3
+//#define BACKLIGHT_BREATHING
+
+#define RGB_DI_PIN E2
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 24
+# define RGBLIGHT_HUE_STEP 8
+# define RGBLIGHT_SAT_STEP 8
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+//# define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+# 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
+/*== customize breathing effect ==*/
+/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+/*==== use exp() and sin() ====*/
+//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+//#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * 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
+
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mechlovin/kay65/rev1/info.json b/keyboards/mechlovin/kay65/rev1/info.json
new file mode 100644
index 000000000000..9a2f7dc01be5
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/info.json
@@ -0,0 +1,223 @@
+{
+ "keyboard_name": "Kay65",
+ "url": "",
+ "maintainer": "Mechlovin' Studio",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"K00 (B0,B5)", "x":0, "y":0},
+ {"label":"K01 (B0,B6)", "x":1, "y":0},
+ {"label":"K02 (B0,B7)", "x":2, "y":0},
+ {"label":"K03 (B0,C0)", "x":3, "y":0},
+ {"label":"K04 (B0,C1)", "x":4, "y":0},
+ {"label":"K05 (B0,C2)", "x":5, "y":0},
+ {"label":"K06 (B0,C3)", "x":6, "y":0},
+ {"label":"K07 (B0,C4)", "x":7, "y":0},
+ {"label":"K08 (B0,C5)", "x":8, "y":0},
+ {"label":"K09 (B0,C6)", "x":9, "y":0},
+ {"label":"K0A (B0,C7)", "x":10, "y":0},
+ {"label":"K0B (B0,D0)", "x":11, "y":0},
+ {"label":"K0C (B0,D1)", "x":12, "y":0},
+ {"label":"K0D (B0,D2)", "x":13, "y":0},
+ {"label":"K1D (B1,D2)", "x":14, "y":0},
+ {"label":"K0E (B0,D3)", "x":15, "y":0},
+ {"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5},
+ {"label":"K11 (B1,B6)", "x":1.5, "y":1},
+ {"label":"K12 (B1,B7)", "x":2.5, "y":1},
+ {"label":"K13 (B1,C0)", "x":3.5, "y":1},
+ {"label":"K14 (B1,C1)", "x":4.5, "y":1},
+ {"label":"K15 (B1,C2)", "x":5.5, "y":1},
+ {"label":"K16 (B1,C3)", "x":6.5, "y":1},
+ {"label":"K17 (B1,C4)", "x":7.5, "y":1},
+ {"label":"K18 (B1,C5)", "x":8.5, "y":1},
+ {"label":"K19 (B1,C6)", "x":9.5, "y":1},
+ {"label":"K1A (B1,C7)", "x":10.5, "y":1},
+ {"label":"K1B (B1,D0)", "x":11.5, "y":1},
+ {"label":"K1C (B1,D1)", "x":12.5, "y":1},
+ {"label":"K2C (B2,D1)", "x":13.5, "y":1, "w":1.5},
+ {"label":"K1E (B1,D3)", "x":15, "y":1},
+ {"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75},
+ {"label":"K21 (B2,B6)", "x":1.75, "y":2},
+ {"label":"K22 (B2,B7)", "x":2.75, "y":2},
+ {"label":"K23 (B2,C0)", "x":3.75, "y":2},
+ {"label":"K24 (B2,C1)", "x":4.75, "y":2},
+ {"label":"K25 (B2,C2)", "x":5.75, "y":2},
+ {"label":"K26 (B2,C3)", "x":6.75, "y":2},
+ {"label":"K27 (B2,C4)", "x":7.75, "y":2},
+ {"label":"K28 (B2,C5)", "x":8.75, "y":2},
+ {"label":"K29 (B2,C6)", "x":9.75, "y":2},
+ {"label":"K2A (B2,C7)", "x":10.75, "y":2},
+ {"label":"K2B (B2,D0)", "x":11.75, "y":2},
+ {"label":"K2D (B2,D2)", "x":12.75, "y":2, "w":2.25},
+ {"label":"K2E (B2,D3)", "x":15, "y":2},
+ {"label":"K30 (B3,B5)", "x":0, "y":3, "w":1.25},
+ {"label":"K31 (B3,B6)", "x":1.25, "y":3},
+ {"label":"K32 (B3,B7)", "x":2.25, "y":3},
+ {"label":"K33 (B3,C0)", "x":3.25, "y":3},
+ {"label":"K34 (B3,C1)", "x":4.25, "y":3},
+ {"label":"K35 (B3,C2)", "x":5.25, "y":3},
+ {"label":"K36 (B3,C3)", "x":6.25, "y":3},
+ {"label":"K37 (B3,C4)", "x":7.25, "y":3},
+ {"label":"K38 (B3,C5)", "x":8.25, "y":3},
+ {"label":"K39 (B3,C6)", "x":9.25, "y":3},
+ {"label":"K3A (B3,C7)", "x":10.25, "y":3},
+ {"label":"K3B (B3,D0)", "x":11.25, "y":3},
+ {"label":"K3C (B3,D1)", "x":12.25, "y":3, "w":1.75},
+ {"label":"K3D (B3,D2)", "x":14, "y":3},
+ {"label":"K3E (B3,D3)", "x":15, "y":3},
+ {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25},
+ {"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25},
+ {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25},
+ {"label":"K46 (B4,C3)", "x":3.75, "y":4, "w":6.25},
+ {"label":"K4A (B4,C7)", "x":10, "y":4, "w":1.25},
+ {"label":"K4B (B4,D0)", "x":11.25, "y":4, "w":1.25},
+ {"label":"K4C (B4,D1)", "x":13, "y":4},
+ {"label":"K4D (B4,D2)", "x":14, "y":4},
+ {"label":"K4E (B4,D3)", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker": {
+ "layout": [
+ {"label":"K00 (B0,B5)", "x":0, "y":0},
+ {"label":"K01 (B0,B6)", "x":1, "y":0},
+ {"label":"K02 (B0,B7)", "x":2, "y":0},
+ {"label":"K03 (B0,C0)", "x":3, "y":0},
+ {"label":"K04 (B0,C1)", "x":4, "y":0},
+ {"label":"K05 (B0,C2)", "x":5, "y":0},
+ {"label":"K06 (B0,C3)", "x":6, "y":0},
+ {"label":"K07 (B0,C4)", "x":7, "y":0},
+ {"label":"K08 (B0,C5)", "x":8, "y":0},
+ {"label":"K09 (B0,C6)", "x":9, "y":0},
+ {"label":"K0A (B0,C7)", "x":10, "y":0},
+ {"label":"K0B (B0,D0)", "x":11, "y":0},
+ {"label":"K0C (B0,D1)", "x":12, "y":0},
+ {"label":"K0D (B0,D2)", "x":13, "y":0, "w":2},
+ {"label":"K0E (B0,D3)", "x":15, "y":0},
+ {"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5},
+ {"label":"K11 (B1,B6)", "x":1.5, "y":1},
+ {"label":"K12 (B1,B7)", "x":2.5, "y":1},
+ {"label":"K13 (B1,C0)", "x":3.5, "y":1},
+ {"label":"K14 (B1,C1)", "x":4.5, "y":1},
+ {"label":"K15 (B1,C2)", "x":5.5, "y":1},
+ {"label":"K16 (B1,C3)", "x":6.5, "y":1},
+ {"label":"K17 (B1,C4)", "x":7.5, "y":1},
+ {"label":"K18 (B1,C5)", "x":8.5, "y":1},
+ {"label":"K19 (B1,C6)", "x":9.5, "y":1},
+ {"label":"K1A (B1,C7)", "x":10.5, "y":1},
+ {"label":"K1B (B1,D0)", "x":11.5, "y":1},
+ {"label":"K1C (B1,D1)", "x":12.5, "y":1},
+ {"label":"K2C (B2,D1)", "x":13.5, "y":1, "w":1.5},
+ {"label":"K1E (B1,D3)", "x":15, "y":1},
+ {"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75},
+ {"label":"K21 (B2,B6)", "x":1.75, "y":2},
+ {"label":"K22 (B2,B7)", "x":2.75, "y":2},
+ {"label":"K23 (B2,C0)", "x":3.75, "y":2},
+ {"label":"K24 (B2,C1)", "x":4.75, "y":2},
+ {"label":"K25 (B2,C2)", "x":5.75, "y":2},
+ {"label":"K26 (B2,C3)", "x":6.75, "y":2},
+ {"label":"K27 (B2,C4)", "x":7.75, "y":2},
+ {"label":"K28 (B2,C5)", "x":8.75, "y":2},
+ {"label":"K29 (B2,C6)", "x":9.75, "y":2},
+ {"label":"K2A (B2,C7)", "x":10.75, "y":2},
+ {"label":"K2B (B2,D0)", "x":11.75, "y":2},
+ {"label":"K2D (B2,D2)", "x":12.75, "y":2, "w":2.25},
+ {"label":"K2E (B2,D3)", "x":15, "y":2},
+ {"label":"K30 (B3,B5)", "x":0, "y":3, "w":2.25},
+ {"label":"K32 (B3,B7)", "x":2.25, "y":3},
+ {"label":"K33 (B3,C0)", "x":3.25, "y":3},
+ {"label":"K34 (B3,C1)", "x":4.25, "y":3},
+ {"label":"K35 (B3,C2)", "x":5.25, "y":3},
+ {"label":"K36 (B3,C3)", "x":6.25, "y":3},
+ {"label":"K37 (B3,C4)", "x":7.25, "y":3},
+ {"label":"K38 (B3,C5)", "x":8.25, "y":3},
+ {"label":"K39 (B3,C6)", "x":9.25, "y":3},
+ {"label":"K3A (B3,C7)", "x":10.25, "y":3},
+ {"label":"K3B (B3,D0)", "x":11.25, "y":3},
+ {"label":"K3C (B3,D1)", "x":12.25, "y":3, "w":1.75},
+ {"label":"K3D (B3,D2)", "x":14, "y":3},
+ {"label":"K3E (B3,D3)", "x":15, "y":3},
+ {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25},
+ {"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25},
+ {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25},
+ {"label":"K46 (B4,C3)", "x":3.75, "y":4, "w":6.25},
+ {"label":"K4A (B4,C7)", "x":10, "y":4, "w":1.25},
+ {"label":"K4B (B4,D0)", "x":11.25, "y":4, "w":1.25},
+ {"label":"K4C (B4,D1)", "x":13, "y":4},
+ {"label":"K4D (B4,D2)", "x":14, "y":4},
+ {"label":"K4E (B4,D3)", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker": {
+ "layout": [
+ {"label":"K00 (B0,B5)", "x":0, "y":0},
+ {"label":"K01 (B0,B6)", "x":1, "y":0},
+ {"label":"K02 (B0,B7)", "x":2, "y":0},
+ {"label":"K03 (B0,C0)", "x":3, "y":0},
+ {"label":"K04 (B0,C1)", "x":4, "y":0},
+ {"label":"K05 (B0,C2)", "x":5, "y":0},
+ {"label":"K06 (B0,C3)", "x":6, "y":0},
+ {"label":"K07 (B0,C4)", "x":7, "y":0},
+ {"label":"K08 (B0,C5)", "x":8, "y":0},
+ {"label":"K09 (B0,C6)", "x":9, "y":0},
+ {"label":"K0A (B0,C7)", "x":10, "y":0},
+ {"label":"K0B (B0,D0)", "x":11, "y":0},
+ {"label":"K0C (B0,D1)", "x":12, "y":0},
+ {"label":"K0D (B0,D2)", "x":13, "y":0, "w":2},
+ {"label":"K0E (B0,D3)", "x":15, "y":0},
+ {"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5},
+ {"label":"K11 (B1,B6)", "x":1.5, "y":1},
+ {"label":"K12 (B1,B7)", "x":2.5, "y":1},
+ {"label":"K13 (B1,C0)", "x":3.5, "y":1},
+ {"label":"K14 (B1,C1)", "x":4.5, "y":1},
+ {"label":"K15 (B1,C2)", "x":5.5, "y":1},
+ {"label":"K16 (B1,C3)", "x":6.5, "y":1},
+ {"label":"K17 (B1,C4)", "x":7.5, "y":1},
+ {"label":"K18 (B1,C5)", "x":8.5, "y":1},
+ {"label":"K19 (B1,C6)", "x":9.5, "y":1},
+ {"label":"K1A (B1,C7)", "x":10.5, "y":1},
+ {"label":"K1B (B1,D0)", "x":11.5, "y":1},
+ {"label":"K1C (B1,D1)", "x":12.5, "y":1},
+ {"label":"K1E (B1,D3)", "x":15, "y":1},
+ {"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75},
+ {"label":"K21 (B2,B6)", "x":1.75, "y":2},
+ {"label":"K22 (B2,B7)", "x":2.75, "y":2},
+ {"label":"K23 (B2,C0)", "x":3.75, "y":2},
+ {"label":"K24 (B2,C1)", "x":4.75, "y":2},
+ {"label":"K25 (B2,C2)", "x":5.75, "y":2},
+ {"label":"K26 (B2,C3)", "x":6.75, "y":2},
+ {"label":"K27 (B2,C4)", "x":7.75, "y":2},
+ {"label":"K28 (B2,C5)", "x":8.75, "y":2},
+ {"label":"K29 (B2,C6)", "x":9.75, "y":2},
+ {"label":"K2A (B2,C7)", "x":10.75, "y":2},
+ {"label":"K2B (B2,D0)", "x":11.75, "y":2},
+ {"label":"K2C (B2,D1)", "x":12.75, "y":2},
+ {"label":"K2D (B2,D2)", "x":13.75, "y":1, "w":1.25, "h":2},
+ {"label":"K2E (B2,D3)", "x":15, "y":2},
+ {"label":"K30 (B3,B5)", "x":0, "y":3, "w":1.25},
+ {"label":"K31 (B3,B6)", "x":1.25, "y":3},
+ {"label":"K32 (B3,B7)", "x":2.25, "y":3},
+ {"label":"K33 (B3,C0)", "x":3.25, "y":3},
+ {"label":"K34 (B3,C1)", "x":4.25, "y":3},
+ {"label":"K35 (B3,C2)", "x":5.25, "y":3},
+ {"label":"K36 (B3,C3)", "x":6.25, "y":3},
+ {"label":"K37 (B3,C4)", "x":7.25, "y":3},
+ {"label":"K38 (B3,C5)", "x":8.25, "y":3},
+ {"label":"K39 (B3,C6)", "x":9.25, "y":3},
+ {"label":"K3A (B3,C7)", "x":10.25, "y":3},
+ {"label":"K3B (B3,D0)", "x":11.25, "y":3},
+ {"label":"K3C (B3,D1)", "x":12.25, "y":3, "w":1.75},
+ {"label":"K3D (B3,D2)", "x":14, "y":3},
+ {"label":"K3E (B3,D3)", "x":15, "y":3},
+ {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25},
+ {"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25},
+ {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25},
+ {"label":"K46 (B4,C3)", "x":3.75, "y":4, "w":6.25},
+ {"label":"K4A (B4,C7)", "x":10, "y":4, "w":1.25},
+ {"label":"K4B (B4,D0)", "x":11.25, "y":4, "w":1.25},
+ {"label":"K4C (B4,D1)", "x":13, "y":4},
+ {"label":"K4D (B4,D2)", "x":14, "y":4},
+ {"label":"K4E (B4,D3)", "x":15, "y":4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/default/keymap.c b/keyboards/mechlovin/kay65/rev1/keymaps/default/keymap.c
new file mode 100644
index 000000000000..1607eee4fdc0
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/keymaps/default/keymap.c
@@ -0,0 +1,52 @@
+/*
+Copyright 2021 Mechlovin'
+
+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 .
+*/
+
+#include QMK_KEYBOARD_H
+
+enum my_keycodes {
+ LOGO_LED_ON = USER00,
+ LOGO_LED_OFF = USER01
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
+ 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_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_LSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOGO_LED_ON:
+ if (record->event.pressed) {
+ writePinHigh(D7);
+ }
+ break;
+ case LOGO_LED_OFF:
+ if (record->event.pressed) {
+ writePinLow(D7);
+ }
+ break;
+ }
+ return true;
+};
+
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/default/readme.md b/keyboards/mechlovin/kay65/rev1/keymaps/default/readme.md
new file mode 100644
index 000000000000..95a00bd46c8a
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Kay65
\ No newline at end of file
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/via/keymap.c b/keyboards/mechlovin/kay65/rev1/keymaps/via/keymap.c
new file mode 100644
index 000000000000..c2bdbf219f59
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/keymaps/via/keymap.c
@@ -0,0 +1,72 @@
+/*
+Copyright 2021 Mechlovin'
+
+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 .
+*/
+
+#include QMK_KEYBOARD_H
+
+enum my_keycodes {
+ LOGO_LED_ON = USER00,
+ LOGO_LED_OFF = USER01
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
+ 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_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_LSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOGO_LED_ON:
+ if (record->event.pressed) {
+ writePinHigh(D7);
+ }
+ break;
+ case LOGO_LED_OFF:
+ if (record->event.pressed) {
+ writePinLow(D7);
+ }
+ break;
+ }
+ return true;
+};
\ No newline at end of file
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/via/readme.md b/keyboards/mechlovin/kay65/rev1/keymaps/via/readme.md
new file mode 100644
index 000000000000..9a13f95f0dcd
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for Kay65
\ No newline at end of file
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/via/rules.mk b/keyboards/mechlovin/kay65/rev1/keymaps/via/rules.mk
new file mode 100644
index 000000000000..43061db1dd46
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/mechlovin/kay65/rev1/readme.md b/keyboards/mechlovin/kay65/rev1/readme.md
new file mode 100644
index 000000000000..dfa454d370d6
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/readme.md
@@ -0,0 +1,27 @@
+# Kay65
+
+![Kay65](https://i.imgur.com/tuu6w1Ul.png)
+
+A 65% PCB with centered USB, RGB underglow and top right LED.
+
+* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
+* Hardware Supported: Kay65 Rev.1, Atmega32u4
+* Hardware Availability: [Mechlovin' Store](https://mechlovin.studio/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/kay65/rev1:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/kay65/rev1: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 `RESET` if it is available
diff --git a/keyboards/mechlovin/kay65/rev1/rev1.c b/keyboards/mechlovin/kay65/rev1/rev1.c
new file mode 100644
index 000000000000..bc894a96e15c
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/rev1.c
@@ -0,0 +1,25 @@
+/*
+Copyright 2021 Mechlovin'
+
+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 .
+*/
+
+#include "rev1.h"
+
+void keyboard_pre_init_user(void) {
+ // Call the keyboard pre init code.
+
+ // Set our LED pins as output
+ setPinOutput(D7);
+}
\ No newline at end of file
diff --git a/keyboards/mechlovin/kay65/rev1/rev1.h b/keyboards/mechlovin/kay65/rev1/rev1.h
new file mode 100644
index 000000000000..7da2a749698c
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/rev1.h
@@ -0,0 +1,62 @@
+/*
+Copyright 2021 Mechlovin'
+
+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 .
+*/
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
+}
+
+#define LAYOUT_65_ansi_blocker( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
+}
+
+#define LAYOUT_65_iso_blocker( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
+}
diff --git a/keyboards/mechlovin/kay65/rev1/rules.mk b/keyboards/mechlovin/kay65/rev1/rules.mk
new file mode 100644
index 000000000000..a9dd139c6bfb
--- /dev/null
+++ b/keyboards/mechlovin/kay65/rev1/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = 65_ansi_blocker 65_iso_blocker
diff --git a/keyboards/mechlovin/olly/jf/config.h b/keyboards/mechlovin/olly/jf/config.h
index 66826aafa4e5..f1c40cb36590 100644
--- a/keyboards/mechlovin/olly/jf/config.h
+++ b/keyboards/mechlovin/olly/jf/config.h
@@ -72,3 +72,7 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
+
+/* Bootmagic Lite key configuration */
+#define BOOTMAGIC_LITE_ROW 1
+#define BOOTMAGIC_LITE_COLUMN 14
diff --git a/keyboards/mechlovin/olly/jf/keymaps/via/config.h b/keyboards/mechlovin/olly/jf/keymaps/via/config.h
index 82c2e51eb914..01d7e4bc38fa 100644
--- a/keyboards/mechlovin/olly/jf/keymaps/via/config.h
+++ b/keyboards/mechlovin/olly/jf/keymaps/via/config.h
@@ -17,4 +17,5 @@ along with this program. If not, see .
#pragma once
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
+#define DYNAMIC_KEYMAP_LAYER_COUNT 2
+
diff --git a/keyboards/mechlovin/olly/jf/keymaps/via/keymap.c b/keyboards/mechlovin/olly/jf/keymaps/via/keymap.c
index 18ac685abc79..947b3b0d35c2 100644
--- a/keyboards/mechlovin/olly/jf/keymaps/via/keymap.c
+++ b/keyboards/mechlovin/olly/jf/keymaps/via/keymap.c
@@ -32,12 +32,5 @@ 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
+
};
\ No newline at end of file
diff --git a/keyboards/mechlovin/olly/jf/readme.md b/keyboards/mechlovin/olly/jf/readme.md
index b45498f849c8..6a6bbc415a53 100644
--- a/keyboards/mechlovin/olly/jf/readme.md
+++ b/keyboards/mechlovin/olly/jf/readme.md
@@ -18,6 +18,7 @@ Flashing example for this keyboard:
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).
-**Reset Key:** 2 ways to put the Olly JF into bootloader:
+**Reset Key:** 3 ways to put the Olly JF into bootloader:
By keycode: Tap RESET keycode.
-By bootloader: hold ESC key while plugging in
\ No newline at end of file
+By Bootloader: hold ESC key while plugging in (jump to bootloader)
+By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM)
\ No newline at end of file
From 2d9c3f9a89c502e76eacb485e984ba467d72048e Mon Sep 17 00:00:00 2001
From: Ryan
Date: Tue, 15 Mar 2022 11:38:53 +1100
Subject: [PATCH 030/221] Add SN74x154 driver and convert AL1 custom matrix
(#16331)
---
drivers/gpio/sn74x154.c | 58 +++++++++++++++
drivers/gpio/sn74x154.h | 48 +++++++++++++
keyboards/al1/config.h | 5 ++
keyboards/al1/matrix.c | 152 +++++++++++++++++++++-------------------
keyboards/al1/rules.mk | 3 +-
5 files changed, 194 insertions(+), 72 deletions(-)
create mode 100644 drivers/gpio/sn74x154.c
create mode 100644 drivers/gpio/sn74x154.h
diff --git a/drivers/gpio/sn74x154.c b/drivers/gpio/sn74x154.c
new file mode 100644
index 000000000000..5f21f12b55f7
--- /dev/null
+++ b/drivers/gpio/sn74x154.c
@@ -0,0 +1,58 @@
+/* Copyright 2022
+ *
+ * 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 .
+ */
+
+#include "sn74x154.h"
+#include "gpio.h"
+
+#define ADDRESS_PIN_COUNT 4
+
+#ifndef SN74X154_ADDRESS_PINS
+# error sn74x154: no address pins defined!
+#endif
+
+static const pin_t address_pins[ADDRESS_PIN_COUNT] = SN74X154_ADDRESS_PINS;
+
+void sn74x154_init(void) {
+ for (int i = 0; i < ADDRESS_PIN_COUNT; i++) {
+ setPinOutput(address_pins[i]);
+ writePinLow(address_pins[i]);
+ }
+
+#if defined(SN74X154_E0_PIN)
+ setPinOutput(SN74X154_E0_PIN);
+ writePinHigh(SN74X154_E0_PIN);
+#endif
+
+#if defined(SN74X154_E1_PIN)
+ setPinOutput(SN74X154_E1_PIN);
+ writePinHigh(SN74X154_E1_PIN);
+#endif
+}
+
+void sn74x154_set_enabled(bool enabled) {
+#if defined(SN74X154_E0_PIN)
+ writePin(SN74X154_E0_PIN, !enabled);
+#endif
+#if defined(SN74X154_E1_PIN)
+ writePin(SN74X154_E1_PIN, !enabled);
+#endif
+}
+
+void sn74x154_set_addr(uint8_t address) {
+ for (int i = 0; i < ADDRESS_PIN_COUNT; i++) {
+ writePin(address_pins[i], address & (1 << i));
+ }
+}
diff --git a/drivers/gpio/sn74x154.h b/drivers/gpio/sn74x154.h
new file mode 100644
index 000000000000..ce6a9ddb0e94
--- /dev/null
+++ b/drivers/gpio/sn74x154.h
@@ -0,0 +1,48 @@
+/* Copyright 2022
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include
+#include
+
+/**
+ * Driver for 74x154 4-to-16 decoder/demultiplexer with inverting outputs
+ * https://assets.nexperia.com/documents/data-sheet/74HC_HCT154.pdf
+ */
+
+/**
+ * Initialize the address and output enable pins.
+ */
+void sn74x154_init(void);
+
+/**
+ * Set the enabled state.
+ *
+ * When enabled is true, pulls the E0 and E1 pins low.
+ *
+ * \param enabled The enable state to set.
+ */
+void sn74x154_set_enabled(bool enabled);
+
+/**
+ * Set the output pin address.
+ *
+ * The selected output pin will be pulled low, while the remaining output pins will be high.
+ *
+ * \param address The address to set, from 0 to 15.
+ */
+void sn74x154_set_addr(uint8_t address);
diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h
index c8edb8ebfe54..570eb03ae2f0 100644
--- a/keyboards/al1/config.h
+++ b/keyboards/al1/config.h
@@ -30,6 +30,11 @@ along with this program. If not, see .
#define MATRIX_ROWS 6
#define MATRIX_COLS 16
+#define MATRIX_ROW_PINS { C7, B1, B2, C6, B4, B5 }
+
+#define SN74X154_ADDRESS_PINS { D4, D5, D6, D7 }
+#define SN74X154_E1_PIN D3
+
#define LED_NUM_LOCK_PIN D0
#define LED_CAPS_LOCK_PIN B7
#define LED_SCROLL_LOCK_PIN D1
diff --git a/keyboards/al1/matrix.c b/keyboards/al1/matrix.c
index 1407cbc089ae..e3d7971f1c2d 100644
--- a/keyboards/al1/matrix.c
+++ b/keyboards/al1/matrix.c
@@ -1,91 +1,101 @@
-#include "matrix.h"
+/* Copyright 2022
+ *
+ * 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 .
+ */
+#include "matrix.h"
#include "gpio.h"
+#include "sn74x154.h"
-static uint8_t read_rows(void) {
- return (readPin(C7) ? 0 : 1) |
- (readPin(B1) ? 0 : 2) |
- (readPin(B2) ? 0 : 4) |
- (readPin(C6) ? 0 : 8) |
- (readPin(B4) ? 0 : 16) |
- (readPin(B5) ? 0 : 32);
-}
+static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
+/* All columns use a 74HC154 4-to-16 demultiplexer.
+ * D3 is the enable pin, must be set high to use it.
+ *
+ * A3 A2 A1 A0
+ * D7 D6 D5 D4
+ * 0: 0 0 0 0
+ * 1: 0 0 0 1
+ * 2: 0 0 1 0
+ * 3: 0 0 1 1
+ * 4: 0 1 0 0
+ * 5: 0 1 0 1
+ * 6: 0 1 1 0
+ * 7: 0 1 1 1
+ * 8: 1 0 0 0
+ * 9: 1 0 0 1
+ * 10: 1 0 1 0
+ * 11: 1 0 1 1
+ * 12: 1 1 0 0
+ * 13: 1 1 0 1
+ * 14: 1 1 1 0
+ * 15: 1 1 1 1
+ */
static void select_col(uint8_t col) {
- writePinLow(D3);
-
- writePin(D4, (col & 1));
- writePin(D5, (col & 2));
- writePin(D6, (col & 4));
- writePin(D7, (col & 8));
+ sn74x154_set_addr(col);
}
-static void unselect_cols(void) {
- writePinHigh(D3);
+static void init_pins(void) {
+ for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
+ setPinInputHigh(row_pins[x]);
+ }
}
-void matrix_init_custom(void) {
- /* 74HC154 col pin configuration
- * pin: D3 D7 D6 D5 D4
- * row: off 0 x x x x
- * 0 1 0 0 0 0
- * 1 1 0 0 0 1
- * 2 1 0 0 1 0
- * 3 1 0 0 1 1
- * 4 1 0 1 0 0
- * 5 1 0 1 0 1
- * 6 1 0 1 1 0
- * 7 1 0 1 1 1
- * 8 1 1 0 0 0
- * 9 1 1 0 0 1
- * 10 1 1 0 1 0
- * 11 1 1 0 1 1
- * 12 1 1 1 0 0
- * 13 1 1 1 0 1
- * 14 1 1 1 1 0
- * 15 1 1 1 1 1
- */
- setPinOutput(D3);
- writePinHigh(D3);
+static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
+ bool matrix_changed = false;
+
+ // Select col and wait for col seleciton to stabilize
+ select_col(current_col);
+ matrix_io_delay();
- setPinOutput(D4);
- setPinOutput(D5);
- setPinOutput(D6);
- setPinOutput(D7);
+ // For each row...
+ for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
+ // Store last value of row prior to reading
+ matrix_row_t last_row_value = current_matrix[row_index];
+ // Check row pin state
+ if (readPin(row_pins[row_index]) == 0) {
+ // Pin LO, set col bit
+ current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col);
+ } else {
+ // Pin HI, clear col bit
+ current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col);
+ }
- /* Row pin configuration
- *
- * row: 0 1 2 3 4 5
- * pin: C7 B1 B2 C6 B4 B5
- *
- */
- setPinInputHigh(C7);
- setPinInputHigh(B1);
- setPinInputHigh(B2);
- setPinInputHigh(C6);
- setPinInputHigh(B4);
- setPinInputHigh(B5);
+ // Determine if the matrix changed state
+ if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) {
+ matrix_changed = true;
+ }
+ }
+
+ return matrix_changed;
+}
+
+void matrix_init_custom(void) {
+ // initialize demultiplexer
+ sn74x154_init();
+ sn74x154_set_enabled(true);
+ // initialize key pins
+ init_pins();
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
bool changed = false;
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- select_col(col);
- matrix_io_delay();
- uint8_t rows = read_rows();
-
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- bool prev_bit = current_matrix[row] & ((matrix_row_t)1 << col);
- bool curr_bit = rows & (1 << row);
-
- if (prev_bit != curr_bit) {
- current_matrix[row] ^= ((matrix_row_t)1 << col);
- changed = true;
- }
- }
- unselect_cols();
+ // Set col, read rows
+ for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
+ changed |= read_rows_on_col(current_matrix, current_col);
}
return changed;
diff --git a/keyboards/al1/rules.mk b/keyboards/al1/rules.mk
index 670712f661ec..1f8e81de20f4 100644
--- a/keyboards/al1/rules.mk
+++ b/keyboards/al1/rules.mk
@@ -18,4 +18,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = lite
-SRC += matrix.c
+VPATH += drivers/gpio
+SRC += matrix.c sn74x154.c
From 04826d1aa175c5aeb808ae9af8d90d164532f199 Mon Sep 17 00:00:00 2001
From: evanmcook <42785294+evanmcook@users.noreply.github.com>
Date: Mon, 14 Mar 2022 21:56:27 -0400
Subject: [PATCH 031/221] [Keyboard] evancookaudio sleepingdinosaur v2 (#16625)
---
.../evancookaudio/sleepingdinosaur/config.h | 4 +-
.../sleepingdinosaur/keymaps/via/keymap.c | 61 +++++++++++++++++++
.../sleepingdinosaur/keymaps/via/rules.mk | 1 +
.../evancookaudio/sleepingdinosaur/rules.mk | 4 +-
4 files changed, 66 insertions(+), 4 deletions(-)
create mode 100644 keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c
create mode 100644 keyboards/evancookaudio/sleepingdinosaur/keymaps/via/rules.mk
diff --git a/keyboards/evancookaudio/sleepingdinosaur/config.h b/keyboards/evancookaudio/sleepingdinosaur/config.h
index 4412e9eb6034..c03ce94c1e9e 100644
--- a/keyboards/evancookaudio/sleepingdinosaur/config.h
+++ b/keyboards/evancookaudio/sleepingdinosaur/config.h
@@ -37,8 +37,8 @@
/* key matrix pins */
-#define MATRIX_ROW_PINS {D0, D1, D4, C6, D7}
-#define MATRIX_COL_PINS {F4, F5, F6, F7, B1, B3}
+#define MATRIX_ROW_PINS {D1, D0, D4, C6, D7}
+#define MATRIX_COL_PINS {B3, B1, F7, F6, F5, F4}
#define UNUSED_PINS {B2, B6, B7, D5, C7, F1, F0, B4, E6}
diff --git a/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c b/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c
new file mode 100644
index 000000000000..250f3bee7c4e
--- /dev/null
+++ b/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c
@@ -0,0 +1,61 @@
+/* Copyright 2022 evan cook
+ *
+ * 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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* LAYER 0
+ * ,-----------------------------------------------.
+ * | 1 | 2 | 3 | 4 | 5 | - |
+ * |-------+-------+-------|-------|-------|-------|
+ * | 6 | 7 | 8 | 9 | 0 | R |
+ * |-------+-------+-------|-------|-------|-------|
+ * | LT(/) | Q | W | E | U | V |
+ * -------+-------+-------|-------|-------|-------|
+ * | ENTER | A | S | D | SPACE | O |
+ * | |-------+-------+-------| |-------|
+ * | | Z | X | C | | N |
+ * ,-----------------------------------------------.
+ */
+LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS,
+ KC_6, KC_7, KC_8, KC_9, KC_0, KC_R,
+ LT(1,KC_SLSH), KC_Q, KC_W, KC_E, KC_U, KC_V,
+ KC_ENT, KC_A, KC_S, KC_D, KC_SPC, KC_O,
+ KC_Z, KC_X, KC_C, KC_N
+)
+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
+)
+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
+)
+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
+)
+};
diff --git a/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/rules.mk b/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/evancookaudio/sleepingdinosaur/rules.mk b/keyboards/evancookaudio/sleepingdinosaur/rules.mk
index 6cf6d9358b27..94d6846c6c70 100644
--- a/keyboards/evancookaudio/sleepingdinosaur/rules.mk
+++ b/keyboards/evancookaudio/sleepingdinosaur/rules.mk
@@ -7,9 +7,9 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = no # Audio control and System control
+EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
From 5e5047f071e7fad23104df76c47f059ce47bad84 Mon Sep 17 00:00:00 2001
From: Pear <93159069+WestMProducts@users.noreply.github.com>
Date: Mon, 14 Mar 2022 20:55:33 -0700
Subject: [PATCH 032/221] [Keyboard westm68 rev1 and fine tune westm boards
(#16528)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/westm/westm68/config.h | 24 ++++---------------
keyboards/westm/westm68/halconf.h | 1 -
keyboards/westm/westm68/rev1/config.h | 34 +++++++++++++++++++++++++++
keyboards/westm/westm68/rev1/rev1.c | 22 +++++++++++++++++
keyboards/westm/westm68/rev1/rev1.h | 17 ++++++++++++++
keyboards/westm/westm68/rev1/rules.mk | 0
keyboards/westm/westm68/westm68.c | 3 +--
keyboards/westm/westmergo/westmergo.c | 2 +-
8 files changed, 80 insertions(+), 23 deletions(-)
create mode 100644 keyboards/westm/westm68/rev1/config.h
create mode 100644 keyboards/westm/westm68/rev1/rev1.c
create mode 100644 keyboards/westm/westm68/rev1/rev1.h
create mode 100644 keyboards/westm/westm68/rev1/rules.mk
diff --git a/keyboards/westm/westm68/config.h b/keyboards/westm/westm68/config.h
index ceecbb914cfd..42e3eeb5a437 100644
--- a/keyboards/westm/westm68/config.h
+++ b/keyboards/westm/westm68/config.h
@@ -16,10 +16,13 @@
#pragma once
+#include "config_common.h"
+
+/* Ensure we jump to bootloader if the RESET keycode was pressed */
+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+
/* USB Device descriptor parameter */
#define VENDOR_ID 0x574D // WM
-#define PRODUCT_ID 0x0001
-#define DEVICE_VER 0x0001 // Revision prototype
#define MANUFACTURER WestM
#define PRODUCT WestM68
@@ -31,23 +34,6 @@
#define MATRIX_COL_PINS { B14, B13, B12, B11, B10, B2, B1, B8, B7, B6, B5, B4, B3, A15, A14 }
#define DIODE_DIRECTION COL2ROW
-#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
-// The pin connected to the data pin of the LEDs
-#define RGB_DI_PIN A8
-#define RGBLED_NUM 19
-
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/westm/westm68/halconf.h b/keyboards/westm/westm68/halconf.h
index a73f08fb6dad..a0a9318360ef 100644
--- a/keyboards/westm/westm68/halconf.h
+++ b/keyboards/westm/westm68/halconf.h
@@ -14,7 +14,6 @@
* along with this program. If not, see .
*/
-
#pragma once
#define HAL_USE_PWM TRUE
diff --git a/keyboards/westm/westm68/rev1/config.h b/keyboards/westm/westm68/rev1/config.h
new file mode 100644
index 000000000000..0e43d9861334
--- /dev/null
+++ b/keyboards/westm/westm68/rev1/config.h
@@ -0,0 +1,34 @@
+/* Copyright 2021 WestM
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#define PRODUCT_ID 0x0001
+#define DEVICE_VER 0x0001
+
+// The pin connected to the data pin of the LEDs
+#define RGB_DI_PIN A8
+#define RGBLED_NUM 16
+#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
\ No newline at end of file
diff --git a/keyboards/westm/westm68/rev1/rev1.c b/keyboards/westm/westm68/rev1/rev1.c
new file mode 100644
index 000000000000..d198c1447ae5
--- /dev/null
+++ b/keyboards/westm/westm68/rev1/rev1.c
@@ -0,0 +1,22 @@
+/* Copyright 2021 WestM
+ *
+ * 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 .
+ */
+
+#include "rev1.h"
+
+void board_init(void) {
+ rgblight_toggle(); // Fixes if LEDs were off in the first place buggy LED turns on
+ rgblight_set(); // Need this to fix buggy first LED upon plugging in PCB
+}
\ No newline at end of file
diff --git a/keyboards/westm/westm68/rev1/rev1.h b/keyboards/westm/westm68/rev1/rev1.h
new file mode 100644
index 000000000000..e30df949a944
--- /dev/null
+++ b/keyboards/westm/westm68/rev1/rev1.h
@@ -0,0 +1,17 @@
+/* Copyright 2021 WestM
+ *
+ * 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 .
+ */
+
+#include "westm68.h"
\ No newline at end of file
diff --git a/keyboards/westm/westm68/rev1/rules.mk b/keyboards/westm/westm68/rev1/rules.mk
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/keyboards/westm/westm68/westm68.c b/keyboards/westm/westm68/westm68.c
index f5ec4962474e..e30df949a944 100644
--- a/keyboards/westm/westm68/westm68.c
+++ b/keyboards/westm/westm68/westm68.c
@@ -14,5 +14,4 @@
* along with this program. If not, see .
*/
-
-#include "westm68.h"
+#include "westm68.h"
\ No newline at end of file
diff --git a/keyboards/westm/westmergo/westmergo.c b/keyboards/westm/westmergo/westmergo.c
index d78a8f9d4ea6..18055d3789be 100644
--- a/keyboards/westm/westmergo/westmergo.c
+++ b/keyboards/westm/westmergo/westmergo.c
@@ -14,4 +14,4 @@
* along with this program. If not, see .
*/
-#include "westmergo.h"
+#include "westmergo.h"
\ No newline at end of file
From 36ddb567cc21944b6bdc76807ca08c3b44978dc5 Mon Sep 17 00:00:00 2001
From: jack <0x6A73@pm.me>
Date: Mon, 14 Mar 2022 22:00:57 -0600
Subject: [PATCH 033/221] [Keyboard] Fix mechlovin/kay65 (#16653)
---
keyboards/mechlovin/kay65/{rev1 => }/config.h | 0
keyboards/mechlovin/kay65/{rev1 => }/info.json | 0
keyboards/mechlovin/kay65/{rev1/rev1.c => kay65.c} | 4 ++--
keyboards/mechlovin/kay65/{rev1/rev1.h => kay65.h} | 0
.../mechlovin/kay65/{rev1 => }/keymaps/default/keymap.c | 6 +++---
.../mechlovin/kay65/{rev1 => }/keymaps/default/readme.md | 0
keyboards/mechlovin/kay65/{rev1 => }/keymaps/via/keymap.c | 4 ++--
keyboards/mechlovin/kay65/{rev1 => }/keymaps/via/readme.md | 0
keyboards/mechlovin/kay65/{rev1 => }/keymaps/via/rules.mk | 0
keyboards/mechlovin/kay65/{rev1 => }/readme.md | 4 ++--
keyboards/mechlovin/kay65/{rev1 => }/rules.mk | 0
11 files changed, 9 insertions(+), 9 deletions(-)
rename keyboards/mechlovin/kay65/{rev1 => }/config.h (100%)
rename keyboards/mechlovin/kay65/{rev1 => }/info.json (100%)
rename keyboards/mechlovin/kay65/{rev1/rev1.c => kay65.c} (97%)
rename keyboards/mechlovin/kay65/{rev1/rev1.h => kay65.h} (100%)
rename keyboards/mechlovin/kay65/{rev1 => }/keymaps/default/keymap.c (96%)
rename keyboards/mechlovin/kay65/{rev1 => }/keymaps/default/readme.md (100%)
rename keyboards/mechlovin/kay65/{rev1 => }/keymaps/via/keymap.c (99%)
rename keyboards/mechlovin/kay65/{rev1 => }/keymaps/via/readme.md (100%)
rename keyboards/mechlovin/kay65/{rev1 => }/keymaps/via/rules.mk (100%)
rename keyboards/mechlovin/kay65/{rev1 => }/readme.md (92%)
rename keyboards/mechlovin/kay65/{rev1 => }/rules.mk (100%)
diff --git a/keyboards/mechlovin/kay65/rev1/config.h b/keyboards/mechlovin/kay65/config.h
similarity index 100%
rename from keyboards/mechlovin/kay65/rev1/config.h
rename to keyboards/mechlovin/kay65/config.h
diff --git a/keyboards/mechlovin/kay65/rev1/info.json b/keyboards/mechlovin/kay65/info.json
similarity index 100%
rename from keyboards/mechlovin/kay65/rev1/info.json
rename to keyboards/mechlovin/kay65/info.json
diff --git a/keyboards/mechlovin/kay65/rev1/rev1.c b/keyboards/mechlovin/kay65/kay65.c
similarity index 97%
rename from keyboards/mechlovin/kay65/rev1/rev1.c
rename to keyboards/mechlovin/kay65/kay65.c
index bc894a96e15c..abc6a7f8d412 100644
--- a/keyboards/mechlovin/kay65/rev1/rev1.c
+++ b/keyboards/mechlovin/kay65/kay65.c
@@ -15,11 +15,11 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
-#include "rev1.h"
+#include "kay65.h"
void keyboard_pre_init_user(void) {
// Call the keyboard pre init code.
// Set our LED pins as output
setPinOutput(D7);
-}
\ No newline at end of file
+}
diff --git a/keyboards/mechlovin/kay65/rev1/rev1.h b/keyboards/mechlovin/kay65/kay65.h
similarity index 100%
rename from keyboards/mechlovin/kay65/rev1/rev1.h
rename to keyboards/mechlovin/kay65/kay65.h
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/default/keymap.c b/keyboards/mechlovin/kay65/keymaps/default/keymap.c
similarity index 96%
rename from keyboards/mechlovin/kay65/rev1/keymaps/default/keymap.c
rename to keyboards/mechlovin/kay65/keymaps/default/keymap.c
index 1607eee4fdc0..cc7cdc44fa78 100644
--- a/keyboards/mechlovin/kay65/rev1/keymaps/default/keymap.c
+++ b/keyboards/mechlovin/kay65/keymaps/default/keymap.c
@@ -18,8 +18,8 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
enum my_keycodes {
- LOGO_LED_ON = USER00,
- LOGO_LED_OFF = USER01
+ LOGO_LED_ON = SAFE_RANGE,
+ LOGO_LED_OFF
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -47,6 +47,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
break;
}
- return true;
+ return true;
};
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/default/readme.md b/keyboards/mechlovin/kay65/keymaps/default/readme.md
similarity index 100%
rename from keyboards/mechlovin/kay65/rev1/keymaps/default/readme.md
rename to keyboards/mechlovin/kay65/keymaps/default/readme.md
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/via/keymap.c b/keyboards/mechlovin/kay65/keymaps/via/keymap.c
similarity index 99%
rename from keyboards/mechlovin/kay65/rev1/keymaps/via/keymap.c
rename to keyboards/mechlovin/kay65/keymaps/via/keymap.c
index c2bdbf219f59..02e1b8578d4f 100644
--- a/keyboards/mechlovin/kay65/rev1/keymaps/via/keymap.c
+++ b/keyboards/mechlovin/kay65/keymaps/via/keymap.c
@@ -68,5 +68,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
break;
}
- return true;
-};
\ No newline at end of file
+ return true;
+};
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/via/readme.md b/keyboards/mechlovin/kay65/keymaps/via/readme.md
similarity index 100%
rename from keyboards/mechlovin/kay65/rev1/keymaps/via/readme.md
rename to keyboards/mechlovin/kay65/keymaps/via/readme.md
diff --git a/keyboards/mechlovin/kay65/rev1/keymaps/via/rules.mk b/keyboards/mechlovin/kay65/keymaps/via/rules.mk
similarity index 100%
rename from keyboards/mechlovin/kay65/rev1/keymaps/via/rules.mk
rename to keyboards/mechlovin/kay65/keymaps/via/rules.mk
diff --git a/keyboards/mechlovin/kay65/rev1/readme.md b/keyboards/mechlovin/kay65/readme.md
similarity index 92%
rename from keyboards/mechlovin/kay65/rev1/readme.md
rename to keyboards/mechlovin/kay65/readme.md
index dfa454d370d6..768ce12aa761 100644
--- a/keyboards/mechlovin/kay65/rev1/readme.md
+++ b/keyboards/mechlovin/kay65/readme.md
@@ -10,11 +10,11 @@ A 65% PCB with centered USB, RGB underglow and top right LED.
Make example for this keyboard (after setting up your build environment):
- make mechlovin/kay65/rev1:default
+ make mechlovin/kay65:default
Flashing example for this keyboard:
- make mechlovin/kay65/rev1:default:flash
+ make mechlovin/kay65: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).
diff --git a/keyboards/mechlovin/kay65/rev1/rules.mk b/keyboards/mechlovin/kay65/rules.mk
similarity index 100%
rename from keyboards/mechlovin/kay65/rev1/rules.mk
rename to keyboards/mechlovin/kay65/rules.mk
From 1ef4e305e3a6f1f46235831b4eb06c4a200651b5 Mon Sep 17 00:00:00 2001
From: jack <0x6A73@pm.me>
Date: Mon, 14 Mar 2022 22:02:49 -0600
Subject: [PATCH 034/221] Fix evancookaudio/sleepingdinosaur (#16654)
---
.../evancookaudio/sleepingdinosaur/config.h | 4 +-
.../sleepingdinosaur/keymaps/via/keymap.c | 59 +++++++++----------
2 files changed, 30 insertions(+), 33 deletions(-)
diff --git a/keyboards/evancookaudio/sleepingdinosaur/config.h b/keyboards/evancookaudio/sleepingdinosaur/config.h
index c03ce94c1e9e..ca1bdbf1c2be 100644
--- a/keyboards/evancookaudio/sleepingdinosaur/config.h
+++ b/keyboards/evancookaudio/sleepingdinosaur/config.h
@@ -39,6 +39,4 @@
#define MATRIX_ROW_PINS {D1, D0, D4, C6, D7}
#define MATRIX_COL_PINS {B3, B1, F7, F6, F5, F4}
-
-#define UNUSED_PINS {B2, B6, B7, D5, C7, F1, F0, B4, E6}
-
+#define UNUSED_PINS
diff --git a/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c b/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c
index 250f3bee7c4e..53edbf1321c1 100644
--- a/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c
+++ b/keyboards/evancookaudio/sleepingdinosaur/keymaps/via/keymap.c
@@ -15,8 +15,6 @@
*/
#include QMK_KEYBOARD_H
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
/* LAYER 0
* ,-----------------------------------------------.
* | 1 | 2 | 3 | 4 | 5 | - |
@@ -30,32 +28,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | Z | X | C | | N |
* ,-----------------------------------------------.
*/
-LAYOUT(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS,
- KC_6, KC_7, KC_8, KC_9, KC_0, KC_R,
- LT(1,KC_SLSH), KC_Q, KC_W, KC_E, KC_U, KC_V,
- KC_ENT, KC_A, KC_S, KC_D, KC_SPC, KC_O,
- KC_Z, KC_X, KC_C, KC_N
-)
-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
-)
-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
-)
-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
-)
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS,
+ KC_6, KC_7, KC_8, KC_9, KC_0, KC_R,
+ LT(1,KC_SLSH), KC_Q, KC_W, KC_E, KC_U, KC_V,
+ KC_ENT, KC_A, KC_S, KC_D, KC_SPC, KC_O,
+ KC_Z, KC_X, KC_C, KC_N
+ ),
+ [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
+ ),
+ [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
+ ),
+ [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
+ )
};
From 87bb1a3890dd203f4e0fbf8a68455e1ecd25fd0e Mon Sep 17 00:00:00 2001
From: thompson-ele
Date: Tue, 15 Mar 2022 00:28:21 -0700
Subject: [PATCH 035/221] [Keyboard] Add Bacca70 keyboard (#16626)
Co-authored-by: Ryan
Co-authored-by: Drashna Jaelre
---
keyboards/bacca70/bacca70.c | 17 ++
keyboards/bacca70/bacca70.h | 65 +++++++
keyboards/bacca70/chconf.h | 25 +++
keyboards/bacca70/config.h | 49 +++++
keyboards/bacca70/info.json | 170 ++++++++++++++++++
.../bacca70/keymaps/debaccabean/keymap.c | 40 +++++
.../bacca70/keymaps/dede-special/keymap.c | 74 ++++++++
keyboards/bacca70/keymaps/default/keymap.c | 38 ++++
keyboards/bacca70/keymaps/via/keymap.c | 56 ++++++
keyboards/bacca70/keymaps/via/rules.mk | 1 +
keyboards/bacca70/readme.md | 23 +++
keyboards/bacca70/rules.mk | 18 ++
12 files changed, 576 insertions(+)
create mode 100644 keyboards/bacca70/bacca70.c
create mode 100644 keyboards/bacca70/bacca70.h
create mode 100644 keyboards/bacca70/chconf.h
create mode 100644 keyboards/bacca70/config.h
create mode 100644 keyboards/bacca70/info.json
create mode 100644 keyboards/bacca70/keymaps/debaccabean/keymap.c
create mode 100644 keyboards/bacca70/keymaps/dede-special/keymap.c
create mode 100644 keyboards/bacca70/keymaps/default/keymap.c
create mode 100644 keyboards/bacca70/keymaps/via/keymap.c
create mode 100644 keyboards/bacca70/keymaps/via/rules.mk
create mode 100644 keyboards/bacca70/readme.md
create mode 100644 keyboards/bacca70/rules.mk
diff --git a/keyboards/bacca70/bacca70.c b/keyboards/bacca70/bacca70.c
new file mode 100644
index 000000000000..174b4d97e72f
--- /dev/null
+++ b/keyboards/bacca70/bacca70.c
@@ -0,0 +1,17 @@
+/* Copyright 2022 keebnewb
+ *
+ * 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 .
+ */
+
+#include "bacca70.h"
diff --git a/keyboards/bacca70/bacca70.h b/keyboards/bacca70/bacca70.h
new file mode 100644
index 000000000000..0583fd8043b3
--- /dev/null
+++ b/keyboards/bacca70/bacca70.h
@@ -0,0 +1,65 @@
+/* Copyright 2022 keebnewb
+ *
+ * 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 .
+ */
+
+ #pragma once
+
+ #include "quantum.h"
+
+ #define ___ KC_NO
+
+#define LAYOUT_default( \
+ k00, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k17, \
+ k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, \
+ k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47, \
+ k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k67, \
+ k80, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k96, k87, \
+ ka0, ka1, ka3, kb5, ka7 \
+){ \
+ { k00, k01, k02, k03, k04, k05, k06, ___ }, \
+ { ___, k11, k12, k13, k14, k15, k16, k17 }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27 }, \
+ { k30, k31, k32, k33, k34, k35, k36, ___ }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47 }, \
+ { k50, k51, k52, k53, k54, k55, ___, ___ }, \
+ { k60, k61, k62, k63, k64, k65, ___, k67 }, \
+ { k70, k71, k72, k73, k74, k75, ___, ___ }, \
+ { k80, k81, k82, k83, k84, k85, ___, k87 }, \
+ { ___, k91, k92, k93, k94, k95, k96, ___ }, \
+ { ka0, ka1, ___, ka3, ___, ___, ___, ka7 }, \
+ { ___, ___, ___, ___, ___, kb5, ___, ___ } \
+}
+
+#define LAYOUT_debaccabean( \
+ k00, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k17, \
+ k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, \
+ k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, \
+ k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k67, \
+ k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k96, k87, \
+ ka0, ka1, ka2, ka3, ka4, kb5, ka7 \
+){ \
+ { k00, k01, k02, k03, k04, k05, k06, ___ }, \
+ { ___, k11, k12, k13, k14, k15, k16, k17 }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27 }, \
+ { k30, k31, k32, k33, k34, k35, k36, ___ }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47 }, \
+ { k50, k51, k52, k53, k54, k55, k56, ___ }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67 }, \
+ { k70, k71, k72, k73, k74, k75, k76, ___ }, \
+ { k80, k81, k82, k83, k84, k85, k86, k87 }, \
+ { k90, k91, k92, k93, k94, k95, k96, ___ }, \
+ { ka0, ka1, ka2, ka3, ka4, ___, ___, ka7 }, \
+ { ___, ___, ___, ___, ___, kb5, ___, ___ } \
+}
diff --git a/keyboards/bacca70/chconf.h b/keyboards/bacca70/chconf.h
new file mode 100644
index 000000000000..9fee9bb49da1
--- /dev/null
+++ b/keyboards/bacca70/chconf.h
@@ -0,0 +1,25 @@
+/* Copyright 2022 keebnewb
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#define CH_CFG_ST_FREQUENCY 10000
+
+#define CH_CFG_OPTIMIZE_SPEED FALSE
+
+#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
+
+#include_next
diff --git a/keyboards/bacca70/config.h b/keyboards/bacca70/config.h
new file mode 100644
index 000000000000..703baaaf3a0b
--- /dev/null
+++ b/keyboards/bacca70/config.h
@@ -0,0 +1,49 @@
+/*
+Copyright 2022 keebnewb
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xBACA
+#define PRODUCT_ID 0x6970
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Viktus Design LLC
+#define PRODUCT Bacca70
+
+/* key matrix size */
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 8
+
+// 0 1 2 3 4 5 6 7 8 9 A B
+#define MATRIX_ROW_PINS { A3, A4, A5, A6, A7, B0, B1, B2, B10, B11, A9, A10 }
+#define MATRIX_COL_PINS { A0, A1, A2, B12, B13, B14, B15, A8 }
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+
diff --git a/keyboards/bacca70/info.json b/keyboards/bacca70/info.json
new file mode 100644
index 000000000000..ddc2f894ac9e
--- /dev/null
+++ b/keyboards/bacca70/info.json
@@ -0,0 +1,170 @@
+{
+ "keyboard_name": "Bacca70",
+ "url": "https://3dkeebs.com/",
+ "maintainer": "keebnewb",
+ "layouts": {
+ "LAYOUT_default": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.75, "y":0},
+ {"x":10.75, "y":0},
+ {"x":11.75, "y":0},
+ {"x":12.75, "y":0},
+ {"x":14, "y":0},
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25},
+ {"x":14, "y":1.25},
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":13.5, "y":2.25, "w":1.5},
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25, "w":2.25},
+ {"x":0, "y":4.25, "w":2.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":1.75},
+ {"x":14, "y":4.25},
+ {"x":0, "y":5.25, "w":1.5},
+ {"x":2.5, "y":5.25, "w":1.5},
+ {"x":4, "y":5.25, "w":7},
+ {"x":11, "y":5.25, "w":1.5},
+ {"x":13.5, "y":5.25, "w":1.5}
+ ]
+ },
+ "LAYOUT_debaccabean": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.75, "y":0},
+ {"x":10.75, "y":0},
+ {"x":11.75, "y":0},
+ {"x":12.75, "y":0},
+ {"x":14, "y":0},
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25},
+ {"x":14, "y":1.25},
+ {"x":0, "y":2.25},
+ {"x":1, "y":2.25},
+ {"x":2, "y":2.25},
+ {"x":3, "y":2.25},
+ {"x":4, "y":2.25},
+ {"x":5, "y":2.25},
+ {"x":6, "y":2.25},
+ {"x":7, "y":2.25},
+ {"x":8, "y":2.25},
+ {"x":9, "y":2.25},
+ {"x":10, "y":2.25},
+ {"x":11, "y":2.25},
+ {"x":12, "y":2.25},
+ {"x":13, "y":2.25},
+ {"x":14, "y":2.25},
+ {"x":0, "y":3.25},
+ {"x":1, "y":3.25},
+ {"x":2, "y":3.25},
+ {"x":3, "y":3.25},
+ {"x":4, "y":3.25},
+ {"x":5, "y":3.25},
+ {"x":6, "y":3.25},
+ {"x":7, "y":3.25},
+ {"x":8, "y":3.25},
+ {"x":9, "y":3.25},
+ {"x":10, "y":3.25},
+ {"x":11, "y":3.25},
+ {"x":12, "y":3.25},
+ {"x":13, "y":3.25},
+ {"x":14, "y":3.25},
+ {"x":0, "y":4.25},
+ {"x":1, "y":4.25},
+ {"x":2, "y":4.25},
+ {"x":3, "y":4.25},
+ {"x":4, "y":4.25},
+ {"x":5, "y":4.25},
+ {"x":6, "y":4.25},
+ {"x":7, "y":4.25},
+ {"x":8, "y":4.25},
+ {"x":9, "y":4.25},
+ {"x":10, "y":4.25},
+ {"x":11, "y":4.25},
+ {"x":12, "y":4.25},
+ {"x":13, "y":4.25},
+ {"x":14, "y":4.25},
+ {"x":0, "y":5.25, "w":1.5},
+ {"x":2.5, "y":5.25, "w":1.5},
+ {"x":4, "y":5.25, "w":3},
+ {"x":7, "y":5.25},
+ {"x":8, "y":5.25, "w":3},
+ {"x":11, "y":5.25, "w":1.5},
+ {"x":13.5, "y":5.25, "w":1.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/bacca70/keymaps/debaccabean/keymap.c b/keyboards/bacca70/keymaps/debaccabean/keymap.c
new file mode 100644
index 000000000000..66e3ec0b5fc2
--- /dev/null
+++ b/keyboards/bacca70/keymaps/debaccabean/keymap.c
@@ -0,0 +1,40 @@
+/*
+Copyright 2022 keebnewb
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+#define CAP_GUI MT(MOD_LGUI, KC_CAPS)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_debaccabean(
+ 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_DEL,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC,KC_INS, KC_RBRC,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_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ CAP_GUI,KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, 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_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT,
+ KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RCTL
+ ),
+
+ [1] = LAYOUT_debaccabean(
+ RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_UP, KC_PGUP,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_MPLY,KC_MUTE,KC_VOLD,KC_VOLU,KC_MPRV,KC_MNXT,KC_TRNS,KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_HOME,KC_END, KC_PGDN,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/bacca70/keymaps/dede-special/keymap.c b/keyboards/bacca70/keymaps/dede-special/keymap.c
new file mode 100644
index 000000000000..1c7514e81b54
--- /dev/null
+++ b/keyboards/bacca70/keymaps/dede-special/keymap.c
@@ -0,0 +1,74 @@
+/*
+Copyright 2022 keebnewb
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+// Windows mods
+#define GRV_CTL MT(MOD_LCTL, KC_GRV)
+#define BLS_CTL MT(MOD_RCTL, KC_BSLS)
+#define TAB_ALT MT(MOD_LALT, KC_TAB)
+
+// MacOS mods
+#define GRV_GUI MT(MOD_LGUI, KC_GRV)
+#define BLS_GUI MT(MOD_RGUI, KC_BSLS)
+#define TAB_CTL MT(MOD_LCTL, KC_TAB)
+
+// mod tap bracket shifts
+#define LBR_SFT MT(MOD_LSFT, KC_LBRC)
+#define RBR_SFT MT(MOD_RSFT, KC_RBRC)
+
+// Arrow/TenKey/Media Keys/Reset hold with Backspace tap
+#define BSPC_LR LT(3, KC_BSPC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_debaccabean(
+ 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC,KC_GRV, KC_RBRC,KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT,
+ TAB_ALT,KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,
+ LBR_SFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,RBR_SFT,
+ KC_LGUI, GRV_CTL, BSPC_LR,MO(2), KC_SPC, BLS_CTL, KC_RGUI
+ ),
+
+ // MacOS layer
+ [1] = LAYOUT_debaccabean(
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ TAB_CTL,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_LALT, GRV_GUI, KC_TRNS,KC_TRNS,KC_TRNS, BLS_GUI, KC_RALT
+ ),
+
+ [2] = LAYOUT_debaccabean(
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_UNDS,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_DLR, KC_TRNS,KC_TRNS,KC_TRNS,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_PLUS,
+ KC_MINS,KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,KC_TRNS,KC_TRNS,KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_debaccabean(
+ RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,TG(1),
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS,KC_TRNS,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_INS, KC_UP, KC_PGUP,KC_TRNS,KC_TRNS,
+ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MNXT,KC_TRNS,KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,
+ KC_MPLY,KC_MUTE,KC_VOLD,KC_VOLU,KC_MPRV,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_HOME,KC_END, KC_PGDN,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/bacca70/keymaps/default/keymap.c b/keyboards/bacca70/keymaps/default/keymap.c
new file mode 100644
index 000000000000..65f1252ba604
--- /dev/null
+++ b/keyboards/bacca70/keymaps/default/keymap.c
@@ -0,0 +1,38 @@
+/*
+Copyright 2022 keebnewb
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_default(
+ 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_DEL,
+ 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_BSLS,KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS,
+ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
+ KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,KC_RSFT,
+ KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL
+ ),
+
+ [1] = LAYOUT_default(
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS
+ )
+};
diff --git a/keyboards/bacca70/keymaps/via/keymap.c b/keyboards/bacca70/keymaps/via/keymap.c
new file mode 100644
index 000000000000..a4a74b72521b
--- /dev/null
+++ b/keyboards/bacca70/keymaps/via/keymap.c
@@ -0,0 +1,56 @@
+/*
+Copyright 2022 keebnewb
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_default(
+ 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_DEL,
+ 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_BSLS,KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS,
+ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
+ KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,KC_RSFT,
+ KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL
+ ),
+
+ [1]=LAYOUT_default(
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS
+ ),
+
+ [2] = LAYOUT_default(
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS
+ ),
+
+ [3] = LAYOUT_default(
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS
+ )
+};
diff --git a/keyboards/bacca70/keymaps/via/rules.mk b/keyboards/bacca70/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/bacca70/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/bacca70/readme.md b/keyboards/bacca70/readme.md
new file mode 100644
index 000000000000..2141138b8f6a
--- /dev/null
+++ b/keyboards/bacca70/readme.md
@@ -0,0 +1,23 @@
+# Bacca70
+
+![Bacca70](https://imgur.com/TQMALjwh.png)
+
+The Bacca70 is a winkeyless (WKL) 60% layout that includes a F-row. It's classy, hefty and it was designed by Chewwy (of MechsOnDeck) and BlindAssassin.
+
+* Keyboard Maintainer: [keebnewb](https://github.com/thompson-ele)
+* Hardware Supported: Bacca70 PCB and the ortholinear variant the DeBaccaBean PCB
+* Hardware Availability: [3DKeebs](https://3dkeebs.com/)
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the top left key (Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB. The button is next to the MCU.
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available. For the default keymap it is on the right alt key on the second layer.
+
+## Make example for this keyboard (after setting up your build environment):
+
+ make bacca70:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/bacca70/rules.mk b/keyboards/bacca70/rules.mk
new file mode 100644
index 000000000000..a0b213f847a8
--- /dev/null
+++ b/keyboards/bacca70/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = STM32F072
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 92a9e7c50b8577e76f2bee9719b344af0e639494 Mon Sep 17 00:00:00 2001
From: PaperCraneKeyboards
<96899643+PaperCraneKeyboards@users.noreply.github.com>
Date: Tue, 15 Mar 2022 01:29:35 -0700
Subject: [PATCH 036/221] [Keyboard] Adding Gerald65 (#15872)
* Gerald65 new keyboard files
* removing initial population of pck
* Initial Gerald65 Keyboard files
* Changed diode direction
* added fn layer, added picture to readme
* directed mo keycode to fn layer
* Changes to vendor id and bootloader instructions
* Changed to direct image reference
* Update keyboards/papercranekeyboards/gerald65/readme.md
* Remove no longer used features
---
.../papercranekeyboards/gerald65/config.h | 130 ++++++++++++++++++
.../papercranekeyboards/gerald65/gerald65.c | 4 +
.../papercranekeyboards/gerald65/gerald65.h | 29 ++++
.../papercranekeyboards/gerald65/info.json | 78 +++++++++++
.../gerald65/keymaps/default/keymap.c | 29 ++++
.../gerald65/keymaps/default/readme.md | 1 +
.../papercranekeyboards/gerald65/readme.md | 27 ++++
.../papercranekeyboards/gerald65/rules.mk | 18 +++
8 files changed, 316 insertions(+)
create mode 100644 keyboards/papercranekeyboards/gerald65/config.h
create mode 100644 keyboards/papercranekeyboards/gerald65/gerald65.c
create mode 100644 keyboards/papercranekeyboards/gerald65/gerald65.h
create mode 100644 keyboards/papercranekeyboards/gerald65/info.json
create mode 100644 keyboards/papercranekeyboards/gerald65/keymaps/default/keymap.c
create mode 100644 keyboards/papercranekeyboards/gerald65/keymaps/default/readme.md
create mode 100644 keyboards/papercranekeyboards/gerald65/readme.md
create mode 100644 keyboards/papercranekeyboards/gerald65/rules.mk
diff --git a/keyboards/papercranekeyboards/gerald65/config.h b/keyboards/papercranekeyboards/gerald65/config.h
new file mode 100644
index 000000000000..9e795b150128
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/config.h
@@ -0,0 +1,130 @@
+// Copyright 2021 PaperCraneKeyboards (@PaperCraneKeyboards)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x5012 //
+#define PRODUCT_ID 0x1501 // '21 keyboard 1
+#define DEVICE_VER 0x0001
+#define MANUFACTURER PaperCraneKeyboards
+#define PRODUCT gerald65
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B7, D6, E6, B4, B5 }
+#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, D7, D4, D3, D2, D1, D0, B6, C6, C7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION ROW2COL
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+//#define LED_NUM_LOCK_PIN B0
+//#define LED_CAPS_LOCK_PIN B1
+//#define LED_SCROLL_LOCK_PIN B2
+//#define LED_COMPOSE_PIN B3
+//#define LED_KANA_PIN B4
+
+//#define BACKLIGHT_PIN B7
+//#define BACKLIGHT_LEVELS 3
+//#define BACKLIGHT_BREATHING
+
+//#define RGB_DI_PIN E2
+//#ifdef RGB_DI_PIN
+//# define RGBLED_NUM 16
+//# define RGBLIGHT_HUE_STEP 8
+//# define RGBLIGHT_SAT_STEP 8
+//# define RGBLIGHT_VAL_STEP 8
+//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+//# define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+//# 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
+/*== customize breathing effect ==*/
+/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+/*==== use exp() and sin() ====*/
+//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+//#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * 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
diff --git a/keyboards/papercranekeyboards/gerald65/gerald65.c b/keyboards/papercranekeyboards/gerald65/gerald65.c
new file mode 100644
index 000000000000..a33f05d8dcfe
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/gerald65.c
@@ -0,0 +1,4 @@
+// Copyright 2021 PaperCraneKeyboards (@PaperCraneKeyboards)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "gerald65.h"
diff --git a/keyboards/papercranekeyboards/gerald65/gerald65.h b/keyboards/papercranekeyboards/gerald65/gerald65.h
new file mode 100644
index 000000000000..b433051bb740
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/gerald65.h
@@ -0,0 +1,29 @@
+// Copyright 2021 PaperCraneKeyboards (@PaperCraneKeyboards)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+#define LAYOUT( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
+ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, \
+ k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, \
+ k58, k59, k60, k61, k62, k63, k64, k65, k66 \
+) { \
+ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14}, \
+ {k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, KC_NO, k43}, \
+ {k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, KC_NO, k56, k57}, \
+ {k58, KC_NO, k59, k60, KC_NO, k61, k62, KC_NO, k63, KC_NO, KC_NO, KC_NO, k64, k65, k66} \
+}
diff --git a/keyboards/papercranekeyboards/gerald65/info.json b/keyboards/papercranekeyboards/gerald65/info.json
new file mode 100644
index 000000000000..c9b08304b30b
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/info.json
@@ -0,0 +1,78 @@
+{
+ "keyboard_name": "gerald65",
+ "url": "",
+ "maintainer": "PaperCraneKeyboards",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"~", "x":0, "y":0},
+ {"label":"!", "x":1, "y":0},
+ {"label":"@", "x":2, "y":0},
+ {"label":"#", "x":3, "y":0},
+ {"label":"$", "x":4, "y":0},
+ {"label":"%", "x":5, "y":0},
+ {"label":"^", "x":6, "y":0},
+ {"label":"&", "x":8.25, "y":0},
+ {"label":"*", "x":9.25, "y":0},
+ {"label":"(", "x":10.25, "y":0},
+ {"label":")", "x":11.25, "y":0},
+ {"label":"_", "x":12.25, "y":0},
+ {"label":"+", "x":13.25, "y":0},
+ {"label":"Backspace", "x":14.25, "y":0, "w":2},
+ {"label":"Delete", "x":16.5, "y":0},
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":7.75, "y":1},
+ {"label":"U", "x":8.75, "y":1},
+ {"label":"I", "x":9.75, "y":1},
+ {"label":"O", "x":10.75, "y":1},
+ {"label":"P", "x":11.75, "y":1},
+ {"label":"{", "x":12.75, "y":1},
+ {"label":"}", "x":13.75, "y":1},
+ {"label":"|", "x":14.75, "y":1, "w":1.5},
+ {"label":"Page Up", "x":16.5, "y":1},
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":8, "y":2},
+ {"label":"J", "x":9, "y":2},
+ {"label":"K", "x":10, "y":2},
+ {"label":"L", "x":11, "y":2},
+ {"label":":", "x":12, "y":2},
+ {"label":"\"", "x":13, "y":2},
+ {"label":"Enter", "x":14, "y":2, "w":2.25},
+ {"label":"Page Down", "x":16.5, "y":2},
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":8.5, "y":3},
+ {"label":"M", "x":9.5, "y":3},
+ {"label":"<", "x":10.5, "y":3},
+ {"label":">", "x":11.5, "y":3},
+ {"label":"?", "x":12.5, "y":3},
+ {"label":"Shift", "x":13.5, "y":3, "w":1.75},
+ {"label":"up", "x":15.5, "y":3},
+ {"label":"Home", "x":16.5, "y":3},
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"Alt", "x":3.25, "y":4, "w":1.25},
+ {"label":"space", "x":4.5, "y":4, "w":2},
+ {"label":"space", "x":6.5, "y":4},
+ {"label":"space", "x":8.25, "y":4, "w":2.75},
+ {"label":"Win", "x":11, "y":4, "w":1.25},
+ {"label":"left", "x":14.5, "y":4},
+ {"label":"down", "x":15.5, "y":4},
+ {"label":"right", "x":16.5, "y":4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/papercranekeyboards/gerald65/keymaps/default/keymap.c b/keyboards/papercranekeyboards/gerald65/keymaps/default/keymap.c
new file mode 100644
index 000000000000..b7f54ceb7cf6
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
+// Copyright 2021 PaperCraneKeyboards (@PaperCraneKeyboards)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE, _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT(
+ 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_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_ENT, KC_PGDN,
+ 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_PAUSE,
+ KC_LCTL, KC_LALT, KC_SPC, MO(_FN), KC_SPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT
+
+ ),
+ [_FN] = LAYOUT(
+ 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_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+
+ )
+};
diff --git a/keyboards/papercranekeyboards/gerald65/keymaps/default/readme.md b/keyboards/papercranekeyboards/gerald65/keymaps/default/readme.md
new file mode 100644
index 000000000000..e548f34ac489
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for gerald65
diff --git a/keyboards/papercranekeyboards/gerald65/readme.md b/keyboards/papercranekeyboards/gerald65/readme.md
new file mode 100644
index 000000000000..2dafff9e20f1
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/readme.md
@@ -0,0 +1,27 @@
+# Paper Crane Keyboards Gerald65
+
+![gerald65](https://i.imgur.com/Qh9cLeEh.jpeg)
+
+A 65% ergonomic acrylic keyboard emphasizing customizability.
+
+* Keyboard Maintainer: [PaperCraneKeyboards](https://github.com/PaperCraneKeyboards)
+* Hardware Supported: Gerald65 PCB
+* Hardware Availability: [Paper Crane Keyboards](https://papercranekeyboards.com/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make papercranekeyboards/gerald65:default
+
+Flashing example for this keyboard:
+
+ make papercranekeyboards/gerald65:default:flash
+
+## 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 (located in the center)
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available. To do this, hold down the key to the right of the left spacebar (1u key in the center of bottom row), and then also press the key in the top right (by default, the delete key).
+
+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).
diff --git a/keyboards/papercranekeyboards/gerald65/rules.mk b/keyboards/papercranekeyboards/gerald65/rules.mk
new file mode 100644
index 000000000000..1275531ef6d6
--- /dev/null
+++ b/keyboards/papercranekeyboards/gerald65/rules.mk
@@ -0,0 +1,18 @@
+# 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 = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 9aaf4a5a9b19f1e2a12c3f2508e2083f7ec58bec Mon Sep 17 00:00:00 2001
From: Albert Y <76888457+filterpaper@users.noreply.github.com>
Date: Tue, 15 Mar 2022 16:31:17 +0800
Subject: [PATCH 037/221] Add split keyboard example for Bootmagic Lite
(#16349)
* Add split keyboard example for bootmagic lite
* Add handedness link
* Edit sentence structure
* Apply suggested language correction
---
docs/feature_bootmagic.md | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/docs/feature_bootmagic.md b/docs/feature_bootmagic.md
index 6b3c7e45fd14..4239cdfd2a26 100644
--- a/docs/feature_bootmagic.md
+++ b/docs/feature_bootmagic.md
@@ -23,14 +23,35 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
## Split Keyboards
-When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file:
+When [handedness](feature_split_keyboard.md#setting-handedness) is predetermined via options like `SPLIT_HAND_PIN` or `EE_HANDS`, you might need to configure a different key between halves. To identify the correct key for the right half, examine the split key matrix defined in the `.h` file, e.g.:
+
+```c
+#define LAYOUT_split_3x5_2( \
+ L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
+ L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
+ L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
+ L16, L17, R16, R17 \
+ ) \
+ { \
+ { L01, L02, L03, L04, L05 }, \
+ { L06, L07, L08, L09, L10 }, \
+ { L11, L12, L13, L14, L15 }, \
+ { L16, L17, KC_NO, KC_NO, KC_NO }, \
+ { R01, R02, R03, R04, R05 }, \
+ { R06, R07, R08, R09, R10 }, \
+ { R11, R12, R13, R14, R15 }, \
+ { R16, R17, KC_NO, KC_NO, KC_NO } \
+ }
+```
+
+If you pick the top right key for the right half, it is `R05` on the top layout. Within the key matrix below, `R05` is located on row 4 columnn 4. To use that key as the right half's Bootmagic Lite trigger, add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
-#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
+#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
```
-By default, these values are not set.
+?> These values are not set by default.
## Advanced Bootmagic Lite
From e94c2df3f3908295c824e20c0593e718c45a0f56 Mon Sep 17 00:00:00 2001
From: jpuerto96
Date: Tue, 15 Mar 2022 04:35:11 -0400
Subject: [PATCH 038/221] [Keyboard] Io mini1800 (#16115)
* First commit
* first commit
* 2x3u layout functional
* 625u layout
* rotary encoder
* Modifications to keymaps
* Remove ingrained from io_mini branch
* Update readme
* Update info.json
* change hardware availability
* Change rules.mk wording to match other PR
* Update keyboards/io_mini1800/rules.mk
* Update keyboards/io_mini1800/keymaps/default/keymap.c
* Update keyboards/io_mini1800/keymaps/2x3u/keymap.c
* Update keyboards/io_mini1800/io_mini1800.c
* Update keyboards/io_mini1800/keymaps/2x3u/readme.md
* Update keyboards/io_mini1800/readme.md
---
keyboards/io_mini1800/config.h | 40 ++++++++++++++
keyboards/io_mini1800/info.json | 24 +++++++++
keyboards/io_mini1800/io_mini1800.c | 18 +++++++
keyboards/io_mini1800/io_mini1800.h | 52 +++++++++++++++++++
keyboards/io_mini1800/keymaps/2x3u/keymap.c | 21 ++++++++
keyboards/io_mini1800/keymaps/2x3u/readme.md | 1 +
.../io_mini1800/keymaps/default/keymap.c | 21 ++++++++
.../io_mini1800/keymaps/default/readme.md | 1 +
keyboards/io_mini1800/readme.md | 24 +++++++++
keyboards/io_mini1800/rules.mk | 20 +++++++
10 files changed, 222 insertions(+)
create mode 100644 keyboards/io_mini1800/config.h
create mode 100644 keyboards/io_mini1800/info.json
create mode 100644 keyboards/io_mini1800/io_mini1800.c
create mode 100644 keyboards/io_mini1800/io_mini1800.h
create mode 100644 keyboards/io_mini1800/keymaps/2x3u/keymap.c
create mode 100644 keyboards/io_mini1800/keymaps/2x3u/readme.md
create mode 100644 keyboards/io_mini1800/keymaps/default/keymap.c
create mode 100644 keyboards/io_mini1800/keymaps/default/readme.md
create mode 100644 keyboards/io_mini1800/readme.md
create mode 100644 keyboards/io_mini1800/rules.mk
diff --git a/keyboards/io_mini1800/config.h b/keyboards/io_mini1800/config.h
new file mode 100644
index 000000000000..ea7efd8ff469
--- /dev/null
+++ b/keyboards/io_mini1800/config.h
@@ -0,0 +1,40 @@
+// Copyright 2022 s8erdude (@jpuerto96)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0000
+#define DEVICE_VER 0x0001
+#define MANUFACTURER jpuerto96
+#define PRODUCT io_mini1800
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D6, D7, B4, B5, D4, E6, B3, D2, D5, D3 }
+#define MATRIX_COL_PINS { D1, D0, B7, B2, F0, F1, F7, F6, F4, F5 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define ENCODERS_PAD_A { B0 }
+#define ENCODERS_PAD_B { B1 }
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
diff --git a/keyboards/io_mini1800/info.json b/keyboards/io_mini1800/info.json
new file mode 100644
index 000000000000..020a776027e4
--- /dev/null
+++ b/keyboards/io_mini1800/info.json
@@ -0,0 +1,24 @@
+{
+ "keyboard_name": "io_mini1800",
+ "url": "https://github.com/jpuerto96",
+ "maintainer": "jpuerto96 (s8erdude)",
+ "layouts": {
+ "LAYOUT_625u": {
+ "layout": [
+ {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15.25, "y":0}, {"label":"Home", "x":16.25, "y":0}, {"label":"Num Lock", "x":17.5, "y":0}, {"label":"/", "x":18.5, "y":0}, {"label":"*", "x":19.5, "y":0}, {"label":"-", "x":20.5, "y":0},
+ {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"End", "x":15.25, "y":1}, {"label":"Del", "x":16.25, "y":1}, {"label":"7", "x":17.5, "y":1}, {"label":"8", "x":18.5, "y":1}, {"label":"9", "x":19.5, "y":1}, {"label":"+", "x":20.5, "y":1, "h":2},
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":17.5, "y":2}, {"label":"5", "x":18.5, "y":2}, {"label":"6", "x":19.5, "y":2},
+ {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Up", "x":15.75, "y":3.5}, {"label":"1", "x":17.5, "y":3}, {"label":"2", "x":18.5, "y":3}, {"label":"3", "x":19.5, "y":3},
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Win", "x":11.5, "y":4, "w":1.25}, {"label":"Fn", "x":12.75, "y":4, "w":1.25}, {"label":"Left", "x":14.75, "y":4.5}, {"label":"Down", "x":15.75, "y":4.5}, {"label":"Right", "x":16.75, "y":4.5}, {"label":"0", "x":18.5, "y":4}, {"label":".", "x":19.5, "y":4}, {"label":"Enter", "x":20.5, "y":3, "h":2}
+ ]
+ },
+ "LAYOUT_2x3u": {
+ "layout": [
+ {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15.25, "y":0}, {"label":"Home", "x":16.25, "y":0}, {"label":"Num Lock", "x":17.5, "y":0}, {"label":"/", "x":18.5, "y":0}, {"label":"*", "x":19.5, "y":0}, {"label":"-", "x":20.5, "y":0},
+ {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"End", "x":15.25, "y":1}, {"label":"Del", "x":16.25, "y":1}, {"label":"7", "x":17.5, "y":1}, {"label":"8", "x":18.5, "y":1}, {"label":"9", "x":19.5, "y":1}, {"label":"+", "x":20.5, "y":1, "h":2},
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":17.5, "y":2}, {"label":"5", "x":18.5, "y":2}, {"label":"6", "x":19.5, "y":2},
+ {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Up", "x":15.75, "y":3.5}, {"label":"1", "x":17.5, "y":3}, {"label":"2", "x":18.5, "y":3}, {"label":"3", "x":19.5, "y":3},
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":3}, {"x":6.75, "y":4, "w":3}, {"label":"Alt", "x":9.75, "y":4, "w":1.5}, {"label":"Win", "x":11.25, "y":4, "w":1.5}, {"label":"Fn", "x":12.75, "y":4, "w":1.25}, {"label":"Left", "x":14.75, "y":4.5}, {"label":"Down", "x":15.75, "y":4.5}, {"label":"Right", "x":16.75, "y":4.5}, {"label":"0", "x":18.5, "y":4}, {"label":".", "x":19.5, "y":4}, {"label":"Enter", "x":20.5, "y":3, "h":2}]
+ }
+ }
+}
diff --git a/keyboards/io_mini1800/io_mini1800.c b/keyboards/io_mini1800/io_mini1800.c
new file mode 100644
index 000000000000..aa500c469a08
--- /dev/null
+++ b/keyboards/io_mini1800/io_mini1800.c
@@ -0,0 +1,18 @@
+// Copyright 2022 s8erdude (@jpuerto96)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "io_mini1800.h"
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ if (index == 0) {
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ }
+ return true;
+}
+#endif
diff --git a/keyboards/io_mini1800/io_mini1800.h b/keyboards/io_mini1800/io_mini1800.h
new file mode 100644
index 000000000000..634592d62c9b
--- /dev/null
+++ b/keyboards/io_mini1800/io_mini1800.h
@@ -0,0 +1,52 @@
+// Copyright 2022 s8erdude (@jpuerto96)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_2x3u( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k59, k58, k57, k56, k55, k54, k53, k52, k51, k50, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k69, k68, k67, k66, k65, k64, k63, k62, k61, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k79, k78, k77, k73, k72, k71, k70, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k89, k88, k85, k83, k82, k81, \
+ k40, k41, k42, k43, k46, k49, k99, k98, k96, k95, k94, k92, k91, k90 \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \
+ { k40, k41, k42, k43, KC_NO, KC_NO, k46, KC_NO, KC_NO, k49 }, \
+ { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \
+ { KC_NO, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \
+ { k70, k71, k72, k73, KC_NO, KC_NO, KC_NO, k77, k78, k79 }, \
+ { KC_NO, k81, k82, k83, KC_NO, k85, KC_NO, KC_NO, k88, k89 }, \
+ { k90, k91, k92, KC_NO, k94, k95, k96, KC_NO, k98, k99 } \
+}
+
+#define LAYOUT_625u( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k59, k58, k57, k56, k55, k54, k53, k52, k51, k50, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k69, k68, k67, k66, k65, k64, k63, k62, k61, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k79, k78, k77, k73, k72, k71, k70, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k89, k88, k85, k83, k82, k81, \
+ k40, k41, k42, k45, k49, k99, k98, k96, k95, k94, k92, k91, k90 \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \
+ { k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, k49 }, \
+ { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \
+ { KC_NO, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \
+ { k70, k71, k72, k73, KC_NO, KC_NO, KC_NO, k77, k78, k79 }, \
+ { KC_NO, k81, k82, k83, KC_NO, k85, KC_NO, KC_NO, k88, k89 }, \
+ { k90, k91, k92, KC_NO, k94, k95, k96, KC_NO, k98, k99 } \
+}
diff --git a/keyboards/io_mini1800/keymaps/2x3u/keymap.c b/keyboards/io_mini1800/keymaps/2x3u/keymap.c
new file mode 100644
index 000000000000..75e4145207df
--- /dev/null
+++ b/keyboards/io_mini1800/keymaps/2x3u/keymap.c
@@ -0,0 +1,21 @@
+// Copyright 2022 s8erdude (@jpuerto96)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+[_BASE] = LAYOUT_2x3u(
+ 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_INS, KC_HOME, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_END, KC_DEL, KC_P7, KC_P8, KC_P9,
+ 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_P4, KC_P5, KC_P6, KC_PPLS,
+ 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_P1, KC_P2, KC_P3,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT
+ )
+};
+
diff --git a/keyboards/io_mini1800/keymaps/2x3u/readme.md b/keyboards/io_mini1800/keymaps/2x3u/readme.md
new file mode 100644
index 000000000000..7e6980f5cdde
--- /dev/null
+++ b/keyboards/io_mini1800/keymaps/2x3u/readme.md
@@ -0,0 +1 @@
+# The default Split Spacebar keymap for io_mini1800
diff --git a/keyboards/io_mini1800/keymaps/default/keymap.c b/keyboards/io_mini1800/keymaps/default/keymap.c
new file mode 100644
index 000000000000..1a3573fe5f9d
--- /dev/null
+++ b/keyboards/io_mini1800/keymaps/default/keymap.c
@@ -0,0 +1,21 @@
+// Copyright 2022 s8erdude (@jpuerto96)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_625u(
+ 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_INS, KC_HOME, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_END, KC_DEL, KC_P7, KC_P8, KC_P9,
+ 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_P4, KC_P5, KC_P6, KC_PPLS,
+ 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_P1, KC_P2, KC_P3,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT
+ )
+};
+
diff --git a/keyboards/io_mini1800/keymaps/default/readme.md b/keyboards/io_mini1800/keymaps/default/readme.md
new file mode 100644
index 000000000000..4bcc9ba51204
--- /dev/null
+++ b/keyboards/io_mini1800/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for io_mini1800
diff --git a/keyboards/io_mini1800/readme.md b/keyboards/io_mini1800/readme.md
new file mode 100644
index 000000000000..c6139203bb20
--- /dev/null
+++ b/keyboards/io_mini1800/readme.md
@@ -0,0 +1,24 @@
+# io_mini1800
+
+This keyboard is a mini 1800 with a minimal navigation cluster, which also offers a rotary encoder option.
+
+* Keyboard Maintainer: [s8erdude](https://github.com/jpuerto96)
+* Hardware Supported: IO-Mini 1800
+* Hardware Availability: [P3D Store](https://p3dstore.com/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make io_mini1800:default
+
+Flashing example for this keyboard:
+
+ make io_mini1800: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
+
+To reset the board into bootloader, do one of the following:
+
+* **Hardware reset**: short the pad labeled RESET on the back, near the microcontroller
+* **Bootmagic reset**: hold down the top left key (usually programmed as Escape) while plugging in the keyboard (also resets persistent storage)
diff --git a/keyboards/io_mini1800/rules.mk b/keyboards/io_mini1800/rules.mk
new file mode 100644
index 000000000000..284ea23e781d
--- /dev/null
+++ b/keyboards/io_mini1800/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+ENCODER_ENABLE = yes
From e9bf95e0f2de74590c57bfd64258559e4219dd1f Mon Sep 17 00:00:00 2001
From: jack <0x6A73@pm.me>
Date: Tue, 15 Mar 2022 03:35:17 -0600
Subject: [PATCH 039/221] [Keyboard] Fix westm/westm68 compliation errors
(#16657)
---
keyboards/westm/westm68/config.h | 6 ++----
keyboards/westm/westm68/rev1/config.h | 5 +----
keyboards/westm/westm68/rev1/rules.mk | 1 +
keyboards/westm/westm68/rules.mk | 4 ++--
4 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/keyboards/westm/westm68/config.h b/keyboards/westm/westm68/config.h
index 42e3eeb5a437..d1063583d391 100644
--- a/keyboards/westm/westm68/config.h
+++ b/keyboards/westm/westm68/config.h
@@ -23,6 +23,8 @@
/* USB Device descriptor parameter */
#define VENDOR_ID 0x574D // WM
+#define PRODUCT_ID 0x0001
+#define DEVICE_VER 0x0001
#define MANUFACTURER WestM
#define PRODUCT WestM68
@@ -41,7 +43,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* Hold ESC key (first key of first column) to trigger bootloader */
-#define BOOTMAGIC_LITE_ROW 0
-#define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
diff --git a/keyboards/westm/westm68/rev1/config.h b/keyboards/westm/westm68/rev1/config.h
index 0e43d9861334..054b47cca254 100644
--- a/keyboards/westm/westm68/rev1/config.h
+++ b/keyboards/westm/westm68/rev1/config.h
@@ -16,9 +16,6 @@
#pragma once
-#define PRODUCT_ID 0x0001
-#define DEVICE_VER 0x0001
-
// The pin connected to the data pin of the LEDs
#define RGB_DI_PIN A8
#define RGBLED_NUM 16
@@ -31,4 +28,4 @@
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
\ No newline at end of file
+#define RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/westm/westm68/rev1/rules.mk b/keyboards/westm/westm68/rev1/rules.mk
index e69de29bb2d1..1e3cebb14515 100644
--- a/keyboards/westm/westm68/rev1/rules.mk
+++ b/keyboards/westm/westm68/rev1/rules.mk
@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/westm/westm68/rules.mk b/keyboards/westm/westm68/rules.mk
index 0ad5e320fb22..a54cc399249d 100644
--- a/keyboards/westm/westm68/rules.mk
+++ b/keyboards/westm/westm68/rules.mk
@@ -17,5 +17,5 @@ CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
\ No newline at end of file
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 46e85ded4747fb3d89f107cb098d9054ea5e632c Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Tue, 15 Mar 2022 12:49:23 +0000
Subject: [PATCH 040/221] Add merge workflow for XAP branch (#16652)
* Add merge workflow for XAP branch
* uncomment
---
.github/workflows/develop_update.yml | 8 -----
.github/workflows/feature_branch_update.yml | 34 +++++++++++++++++++++
2 files changed, 34 insertions(+), 8 deletions(-)
create mode 100644 .github/workflows/feature_branch_update.yml
diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml
index 285720fefe67..1f5c841bff67 100644
--- a/.github/workflows/develop_update.yml
+++ b/.github/workflows/develop_update.yml
@@ -5,7 +5,6 @@ on:
branches:
- master
-
jobs:
develop_update:
runs-on: ubuntu-latest
@@ -22,14 +21,7 @@ jobs:
git fetch origin master develop
git checkout develop
- - name: Check if branch locked
- id: check_locked
- uses: andstor/file-existence-action@v1
- with:
- files: ".locked"
-
- name: Update develop from master
- if: steps.check_locked.outputs.files_exists == 'false'
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"
diff --git a/.github/workflows/feature_branch_update.yml b/.github/workflows/feature_branch_update.yml
new file mode 100644
index 000000000000..fc7bbafd182d
--- /dev/null
+++ b/.github/workflows/feature_branch_update.yml
@@ -0,0 +1,34 @@
+name: Update feature branches after develop merge
+
+on:
+ push:
+ branches:
+ - develop
+
+jobs:
+ feature_branch_update:
+ runs-on: ubuntu-latest
+
+ if: github.repository == 'qmk/qmk_firmware'
+
+ strategy:
+ matrix:
+ branch:
+ - xap
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Checkout branch
+ run: |
+ git fetch origin develop ${{ matrix.branch }}
+ git checkout ${{ matrix.branch }}
+
+ - name: Update branch from develop
+ run: |
+ git config --global user.name "QMK Bot"
+ git config --global user.email "hello@qmk.fm"
+ git merge origin/develop
+ git push origin ${{ matrix.branch }}
From 764dc18a81f762fdff5f74eb6d3b517ba79d5c11 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Wed, 16 Mar 2022 00:56:58 +1100
Subject: [PATCH 041/221] Remove `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
from keyboard config.h (#16655)
---
keyboards/0_sixty/config.h | 2 --
keyboards/0_sixty/underglow/config.h | 2 --
keyboards/0xc7/61key/config.h | 4 ----
keyboards/1upkeyboards/1up60hse/config.h | 2 --
keyboards/1upkeyboards/super16/config.h | 2 --
keyboards/1upkeyboards/super16v2/config.h | 4 ----
keyboards/25keys/aleth42/rev0/config.h | 4 ----
keyboards/25keys/zinc/rev1/config.h | 2 --
keyboards/25keys/zinc/reva/config.h | 2 --
keyboards/3keyecosystem/2key2/config.h | 4 ----
keyboards/3w6/rev1/config.h | 5 -----
keyboards/3w6/rev2/config.h | 5 -----
keyboards/40percentclub/25/config.h | 2 --
keyboards/40percentclub/4pack/config.h | 2 --
keyboards/40percentclub/4x4/config.h | 2 --
keyboards/40percentclub/5x5/config.h | 2 --
keyboards/40percentclub/6lit/config.h | 2 --
keyboards/40percentclub/foobar/config.h | 2 --
keyboards/40percentclub/half_n_half/config.h | 2 --
keyboards/40percentclub/i75/config.h | 2 --
keyboards/40percentclub/mf68/config.h | 2 --
keyboards/40percentclub/nein/config.h | 2 --
keyboards/40percentclub/nori/config.h | 2 --
keyboards/40percentclub/polyandry/config.h | 2 --
keyboards/abacus/config.h | 4 ----
keyboards/abstract/ellipse/rev1/config.h | 2 --
keyboards/acekeyboard/titan60/config.h | 4 ----
keyboards/acheron/arctic/config.h | 2 --
keyboards/acheron/austin/config.h | 2 --
keyboards/acheron/elongate/beta/config.h | 4 ----
keyboards/acheron/keebspcb/config.h | 2 --
keyboards/acheron/lasgweloth/config.h | 2 --
keyboards/acheron/shark/config.h | 2 --
keyboards/ada/infinity81/config.h | 4 ----
keyboards/adelheid/config.h | 2 --
keyboards/adkb96/rev1/config.h | 2 --
keyboards/adpenrose/kintsugi/config.h | 4 ----
keyboards/afternoonlabs/breeze/config.h | 3 ---
keyboards/afternoonlabs/gust/config.h | 3 ---
keyboards/afternoonlabs/oceanbreeze/config.h | 3 ---
keyboards/afternoonlabs/southern_breeze/config.h | 3 ---
keyboards/afternoonlabs/summer_breeze/config.h | 3 ---
keyboards/ai03/equinox/config.h | 2 --
keyboards/ai03/jp60/config.h | 4 ----
keyboards/ai03/lunar/config.h | 2 --
keyboards/ai03/orbit/config.h | 2 --
keyboards/ai03/orbit_x/config.h | 4 ----
keyboards/ai03/polaris/config.h | 2 --
keyboards/ai03/quasar/config.h | 2 --
keyboards/ai03/soyuz/config.h | 2 --
keyboards/ai03/vega/config.h | 2 --
keyboards/ai03/voyager60_alps/config.h | 2 --
keyboards/al1/config.h | 4 ----
keyboards/aleblazer/zodiark/config.h | 2 --
keyboards/alf/dc60/config.h | 2 --
keyboards/alf/x11/config.h | 2 --
keyboards/alpine65/config.h | 2 --
keyboards/alps64/config.h | 2 --
keyboards/amj40/config.h | 2 --
keyboards/amj60/config.h | 4 ----
keyboards/amj96/config.h | 2 --
keyboards/amjkeyboard/amj84/config.h | 4 ----
keyboards/amjpad/config.h | 2 --
keyboards/arabica37/rev1/config.h | 2 --
keyboards/arisu/config.h | 2 --
keyboards/ash1800/config.h | 2 --
keyboards/ashpil/modelm_usbc/config.h | 2 --
keyboards/at_at/660m/config.h | 2 --
keyboards/atlas_65/config.h | 2 --
keyboards/atomic/config.h | 2 --
keyboards/atreus/config.h | 2 --
keyboards/atreus62/config.h | 2 --
keyboards/atxkb/1894/config.h | 2 --
keyboards/aves60/config.h | 4 ----
keyboards/baguette/config.h | 2 --
keyboards/bandominedoni/config.h | 4 ----
keyboards/bantam44/config.h | 2 --
keyboards/barleycorn_smd/config.h | 2 --
keyboards/barracuda/config.h | 4 ----
keyboards/bastardkb/charybdis/3x5/config.h | 4 ----
keyboards/bastardkb/charybdis/4x6/config.h | 4 ----
keyboards/bear_face/config.h | 2 --
keyboards/biacco42/ergo42/rev1/config.h | 2 --
keyboards/biacco42/meishi/config.h | 2 --
keyboards/biacco42/meishi2/config.h | 2 --
keyboards/bioi/f60/config.h | 4 ----
keyboards/blank/blank01/config.h | 4 ----
keyboards/blockey/config.h | 2 --
keyboards/boardrun/bizarre/config.h | 2 --
keyboards/boardrun/classic/config.h | 2 --
keyboards/boardsource/3x4/config.h | 2 --
keyboards/boardsource/4x12/config.h | 2 --
keyboards/boardsource/5x12/config.h | 2 --
keyboards/boardsource/beiwagon/config.h | 4 ----
keyboards/boardsource/holiday/spooky/config.h | 4 ----
keyboards/boardsource/microdox/config.h | 2 --
keyboards/boardsource/technik_o/config.h | 4 ----
keyboards/boardsource/technik_s/config.h | 4 ----
keyboards/boardsource/the_mark/config.h | 4 ----
keyboards/boardwalk/config.h | 2 --
keyboards/boston/config.h | 2 --
keyboards/boston_meetup/2019/config.h | 2 --
keyboards/boston_meetup/config.h | 2 --
keyboards/box75/config.h | 2 --
keyboards/bpiphany/frosty_flake/config.h | 3 +--
keyboards/bpiphany/hid_liber/config.h | 2 --
keyboards/bpiphany/kitten_paw/config.h | 2 --
keyboards/bpiphany/sixshooter/config.h | 2 --
keyboards/bpiphany/tiger_lily/config.h | 2 --
keyboards/bpiphany/unloved_bastard/config.h | 2 --
keyboards/bt66tech/bt66tech60/config.h | 2 --
keyboards/bthlabs/geekpad/config.h | 2 --
keyboards/buildakb/potato65/config.h | 4 ----
keyboards/buildakb/potato65hs/config.h | 4 ----
keyboards/buildakb/potato65s/config.h | 4 ----
keyboards/caffeinated/serpent65/config.h | 2 --
keyboards/canary/canary60rgb/v1/config.h | 6 +-----
keyboards/cannonkeys/adelie/config.h | 4 ----
keyboards/cannonkeys/aella/config.h | 2 --
keyboards/cannonkeys/an_c/config.h | 2 --
keyboards/cannonkeys/atlas/config.h | 2 --
keyboards/cannonkeys/balance/config.h | 2 --
keyboards/cannonkeys/chimera65/config.h | 2 --
keyboards/cannonkeys/db60/config.h | 2 --
keyboards/cannonkeys/devastatingtkl/config.h | 2 --
keyboards/cannonkeys/hoodrowg/config.h | 2 --
keyboards/cannonkeys/instant60/config.h | 2 --
keyboards/cannonkeys/instant65/config.h | 2 --
keyboards/cannonkeys/iron165/config.h | 2 --
keyboards/cannonkeys/obliterated75/config.h | 2 --
keyboards/cannonkeys/onyx/config.h | 2 --
keyboards/cannonkeys/ortho48/config.h | 2 --
keyboards/cannonkeys/ortho60/config.h | 2 --
keyboards/cannonkeys/ortho75/config.h | 2 --
keyboards/cannonkeys/practice60/config.h | 2 --
keyboards/cannonkeys/practice65/config.h | 2 --
keyboards/cannonkeys/rekt1800/config.h | 2 --
keyboards/cannonkeys/sagittarius/config.h | 2 --
keyboards/cannonkeys/satisfaction75/config.h | 2 --
keyboards/cannonkeys/savage65/config.h | 2 --
keyboards/cannonkeys/tmov2/config.h | 2 --
keyboards/cannonkeys/tsukuyomi/config.h | 2 --
keyboards/cannonkeys/vicious40/config.h | 2 --
keyboards/capsunlocked/cu24/config.h | 2 --
keyboards/capsunlocked/cu65/config.h | 4 ----
keyboards/capsunlocked/cu75/config.h | 2 --
keyboards/centromere/config.h | 2 --
keyboards/checkerboards/plexus75/config.h | 2 --
keyboards/checkerboards/pursuit40/config.h | 2 --
keyboards/checkerboards/quark/config.h | 2 --
keyboards/ck60i/config.h | 2 --
keyboards/ckeys/handwire_101/config.h | 2 --
keyboards/ckeys/nakey/config.h | 2 --
keyboards/ckeys/obelus/config.h | 2 --
keyboards/ckeys/thedora/config.h | 2 --
keyboards/ckeys/washington/config.h | 4 ----
keyboards/clueboard/66_hotswap/config.h | 1 -
keyboards/clueboard/66_hotswap/gen1/config.h | 2 --
keyboards/coarse/cordillera/config.h | 2 --
keyboards/contender/config.h | 4 ----
keyboards/converter/a1200/miss1200/config.h | 2 --
keyboards/converter/a1200/teensy2pp/config.h | 2 --
keyboards/converter/modelm101/config.h | 2 --
keyboards/converter/modelm_ssk/config.h | 2 --
keyboards/converter/siemens_tastatur/config.h | 2 --
keyboards/cool836a/config.h | 4 ----
keyboards/copenhagen_click/click_pad_v1/config.h | 2 --
keyboards/coseyfannitutti/discipad/config.h | 2 --
keyboards/coseyfannitutti/discipline/config.h | 2 --
keyboards/coseyfannitutti/mullet/config.h | 3 ---
keyboards/coseyfannitutti/mulletpad/config.h | 3 ---
keyboards/coseyfannitutti/mysterium/config.h | 2 --
keyboards/coseyfannitutti/romeo/config.h | 2 --
keyboards/craftwalk/config.h | 3 ---
keyboards/crazy_keyboard_68/config.h | 4 ----
keyboards/crkbd/config.h | 6 +-----
keyboards/cutie_club/wraith/config.h | 2 --
keyboards/dailycraft/bat43/config.h | 4 ----
keyboards/dailycraft/claw44/config.h | 3 ---
keyboards/dailycraft/claw44/rev1/config.h | 2 --
keyboards/dailycraft/owl8/config.h | 4 ----
keyboards/dailycraft/stickey4/config.h | 4 ----
keyboards/dailycraft/wings42/rev1/config.h | 4 ----
keyboards/dailycraft/wings42/rev1_extkeys/config.h | 4 ----
keyboards/dailycraft/wings42/rev2/config.h | 4 ----
keyboards/dc01/left/config.h | 2 --
keyboards/delikeeb/flatbread60/config.h | 4 ----
keyboards/delikeeb/vaguettelite/config.h | 4 ----
keyboards/delikeeb/vanana/rev1/config.h | 4 ----
keyboards/delikeeb/vanana/rev2/config.h | 4 ----
keyboards/delikeeb/vaneela/config.h | 4 ----
keyboards/delikeeb/vaneelaex/config.h | 4 ----
keyboards/delikeeb/waaffle/rev3/config.h | 4 ----
keyboards/deltapad/config.h | 4 ----
keyboards/deltasplit75/v2/config.h | 2 --
keyboards/demiurge/config.h | 4 ----
keyboards/dichotomy/config.h | 2 --
keyboards/dk60/config.h | 4 ----
keyboards/dm9records/ergoinu/config.h | 2 --
keyboards/dm9records/lain/config.h | 4 ----
keyboards/dm9records/plaid/config.h | 2 --
keyboards/dm9records/tartan/config.h | 2 --
keyboards/donutcables/scrabblepad/config.h | 2 --
keyboards/doppelganger/config.h | 2 --
keyboards/draytronics/daisy/config.h | 3 ---
keyboards/draytronics/scarlet/config.h | 3 ---
keyboards/drewkeys/iskar/config.h | 4 ----
keyboards/dtisaac/dosa40rgb/config.h | 4 ----
keyboards/dtisaac/dtisaac01/config.h | 9 ---------
keyboards/duck/jetfire/config.h | 2 --
keyboards/dztech/dz60rgb/v1/config.h | 4 ----
keyboards/dztech/dz60rgb/v2/config.h | 4 ----
keyboards/dztech/dz60rgb/v2_1/config.h | 4 ----
keyboards/dztech/dz60rgb_ansi/v1/config.h | 4 ----
keyboards/dztech/dz60rgb_ansi/v2/config.h | 4 ----
keyboards/dztech/dz60rgb_ansi/v2_1/config.h | 4 ----
keyboards/dztech/dz60rgb_wkl/v1/config.h | 4 ----
keyboards/dztech/dz60rgb_wkl/v2/config.h | 4 ----
keyboards/dztech/dz60rgb_wkl/v2_1/config.h | 4 ----
keyboards/dztech/dz64rgb/config.h | 4 +---
keyboards/dztech/dz65rgb/v1/config.h | 4 ----
keyboards/dztech/dz65rgb/v2/config.h | 4 ----
keyboards/dztech/dz65rgb/v3/config.h | 4 +---
keyboards/e88/config.h | 4 ----
keyboards/ealdin/quadrant/config.h | 2 --
keyboards/earth_rover/config.h | 4 ----
keyboards/eco/config.h | 2 --
keyboards/edi/hardlight/mk2/config.h | 2 --
keyboards/edi/standaside/config.h | 3 ---
keyboards/eek/config.h | 3 ---
keyboards/efreet/config.h | 4 ----
keyboards/emajesty/eiri/config.h | 4 ----
keyboards/eniigmakeyboards/ek65/config.h | 5 -----
keyboards/eniigmakeyboards/ek87/config.h | 4 ----
keyboards/ep/40/config.h | 2 --
keyboards/ep/96/config.h | 2 --
keyboards/ep/comsn/mollydooker/config.h | 2 --
keyboards/ergodox_ez/config.h | 3 +--
keyboards/ergosaurus/config.h | 2 --
keyboards/ergoslab/rev1/config.h | 2 --
keyboards/ergotravel/rev1/config.h | 2 --
keyboards/ericrlau/numdiscipline/rev1/config.h | 2 --
keyboards/esca/getawayvan/config.h | 2 --
keyboards/esca/getawayvan_f042/config.h | 2 --
keyboards/eternal_keypad/config.h | 4 ----
keyboards/evil80/config.h | 2 --
keyboards/evolv/config.h | 2 --
keyboards/evyd13/atom47/rev5/config.h | 4 ----
keyboards/evyd13/eon40/config.h | 2 --
keyboards/evyd13/eon65/config.h | 2 --
keyboards/evyd13/eon75/config.h | 2 --
keyboards/evyd13/eon87/config.h | 2 --
keyboards/evyd13/eon95/config.h | 2 --
keyboards/evyd13/gh80_1800/config.h | 2 --
keyboards/evyd13/gh80_3700/config.h | 2 --
keyboards/evyd13/gud70/config.h | 4 ----
keyboards/evyd13/minitomic/config.h | 2 --
keyboards/evyd13/mx5160/config.h | 2 --
keyboards/evyd13/nt660/config.h | 4 ----
keyboards/evyd13/nt750/config.h | 4 ----
keyboards/evyd13/nt980/config.h | 4 ----
keyboards/evyd13/omrontkl/config.h | 2 --
keyboards/evyd13/pockettype/config.h | 2 --
keyboards/evyd13/quackfire/config.h | 2 --
keyboards/evyd13/solheim68/config.h | 2 --
keyboards/evyd13/wasdat/config.h | 2 --
keyboards/evyd13/wasdat_code/config.h | 2 --
keyboards/exclusive/e7v1se/config.h | 4 ----
keyboards/exclusive/e85/config.h | 4 ----
keyboards/exent/config.h | 4 ----
keyboards/eyeohdesigns/babyv/config.h | 4 ----
keyboards/fc660c/config.h | 2 --
keyboards/fc980c/config.h | 2 --
keyboards/ffkeebs/puca/config.h | 5 -----
keyboards/fjlabs/7vhotswap/config.h | 2 --
keyboards/fjlabs/ad65/config.h | 2 --
keyboards/fjlabs/bks65/config.h | 2 --
keyboards/fjlabs/bks65solder/config.h | 2 --
keyboards/fjlabs/bolsa65/config.h | 2 --
keyboards/fjlabs/kf87/config.h | 2 --
keyboards/fjlabs/kyuu/config.h | 2 --
keyboards/fjlabs/ldk65/config.h | 2 --
keyboards/fjlabs/midway60/config.h | 2 --
keyboards/fjlabs/mk61rgbansi/config.h | 2 --
keyboards/fjlabs/polaris/config.h | 2 --
keyboards/fjlabs/ready100/config.h | 2 --
keyboards/fjlabs/tf60ansi/config.h | 2 --
keyboards/fjlabs/tf60v2/config.h | 2 --
keyboards/fjlabs/tf65rgbv2/config.h | 2 --
keyboards/flehrad/downbubble/config.h | 2 --
keyboards/fleuron/config.h | 2 --
keyboards/fluorite/config.h | 2 --
keyboards/flxlb/zplit/config.h | 2 --
keyboards/flygone60/rev3/config.h | 4 ----
keyboards/foostan/cornelius/config.h | 4 ----
keyboards/for_science/config.h | 2 --
keyboards/forever65/config.h | 4 ----
keyboards/fortitude60/rev1/config.h | 2 --
keyboards/foxlab/key65/hotswap/config.h | 4 ----
keyboards/foxlab/key65/universal/config.h | 4 ----
keyboards/foxlab/leaf60/hotswap/config.h | 2 --
keyboards/foxlab/leaf60/universal/config.h | 2 --
keyboards/foxlab/time80/config.h | 4 ----
keyboards/gboards/georgi/config.h | 2 --
keyboards/gh60/revc/config.h | 2 --
keyboards/gh60/satan/config.h | 2 --
keyboards/ghs/rar/config.h | 4 ----
keyboards/gkeyboard/gkb_m16/config.h | 4 ----
keyboards/glenpickle/chimera_ergo/config.h | 2 --
keyboards/glenpickle/chimera_ls/config.h | 2 --
keyboards/glenpickle/chimera_ortho/config.h | 2 --
keyboards/glenpickle/chimera_ortho_plus/config.h | 2 --
keyboards/gray_studio/space65/config.h | 2 --
keyboards/hadron/config.h | 2 --
keyboards/hadron/ver3/config.h | 2 --
keyboards/halfcliff/config.h | 4 ----
keyboards/han60/config.h | 4 ----
keyboards/handwired/412_64/config.h | 3 ---
keyboards/handwired/amigopunk/config.h | 4 ----
keyboards/handwired/aranck/config.h | 2 --
keyboards/handwired/arrow_pad/config.h | 2 --
keyboards/handwired/atreus50/config.h | 2 --
keyboards/handwired/baredev/rev1/config.h | 5 -----
keyboards/handwired/bolek/config.h | 4 ----
keyboards/handwired/brain/config.h | 2 --
keyboards/handwired/bstk100/config.h | 4 ----
keyboards/handwired/ck4x4/config.h | 3 ---
keyboards/handwired/cmd60/config.h | 2 --
keyboards/handwired/co60/rev1/config.h | 2 --
keyboards/handwired/dactyl_left/config.h | 2 --
keyboards/handwired/dactyl_promicro/config.h | 2 --
keyboards/handwired/dactyl_rah/config.h | 6 ------
keyboards/handwired/dc/mc/001/config.h | 4 ----
keyboards/handwired/elrgo_s/config.h | 2 --
keyboards/handwired/ergocheap/config.h | 2 --
keyboards/handwired/evk/v1_3/config.h | 2 --
keyboards/handwired/fc200rt_qmk/config.h | 4 ----
keyboards/handwired/fivethirteen/config.h | 2 --
keyboards/handwired/floorboard/config.h | 4 ----
keyboards/handwired/frankie_macropad/config.h | 4 ----
keyboards/handwired/frenchdev/config.h | 3 +--
keyboards/handwired/gamenum/config.h | 2 --
keyboards/handwired/hacked_motospeed/config.h | 2 --
keyboards/handwired/heisenberg/config.h | 2 --
keyboards/handwired/hnah108/config.h | 4 ----
keyboards/handwired/hnah40/config.h | 2 --
keyboards/handwired/ibm122m/config.h | 2 --
keyboards/handwired/jtallbean/split_65/config.h | 4 ----
keyboards/handwired/juliet/config.h | 3 ---
keyboards/handwired/kbod/config.h | 2 --
keyboards/handwired/ks63/config.h | 2 --
keyboards/handwired/leftynumpad/config.h | 4 ----
keyboards/handwired/lemonpad/config.h | 4 ----
keyboards/handwired/macroboard/config.h | 4 ----
keyboards/handwired/magicforce61/config.h | 2 --
keyboards/handwired/magicforce68/config.h | 2 --
keyboards/handwired/mechboards_micropad/config.h | 2 --
keyboards/handwired/meck_tkl/config.h | 4 ----
keyboards/handwired/minorca/config.h | 3 ---
keyboards/handwired/ms_sculpt_mobile/config.h | 2 --
keyboards/handwired/nicekey/config.h | 2 --
keyboards/handwired/not_so_minidox/config.h | 2 --
keyboards/handwired/numpad20/config.h | 2 --
keyboards/handwired/obuwunkunubi/spaget/config.h | 2 --
keyboards/handwired/oem_ansi_fullsize/config.h | 4 ----
keyboards/handwired/onekey/config.h | 4 ----
keyboards/handwired/ortho5x13/config.h | 2 --
keyboards/handwired/ortho5x14/config.h | 3 ---
keyboards/handwired/owlet60/config.h | 2 --
keyboards/handwired/pilcrow/config.h | 2 --
keyboards/handwired/promethium/config.h | 2 --
keyboards/handwired/reddot/config.h | 2 --
keyboards/handwired/retro_refit/config.h | 2 --
keyboards/handwired/sick68/config.h | 4 ----
keyboards/handwired/snatchpad/config.h | 4 ----
keyboards/handwired/sono1/config.h | 6 +-----
keyboards/handwired/split65/promicro/config.h | 2 --
keyboards/handwired/split65/stm32/config.h | 2 --
keyboards/handwired/split89/config.h | 4 ----
keyboards/handwired/splittest/config.h | 2 --
keyboards/handwired/sticc14/config.h | 2 --
keyboards/handwired/symmetric70_proto/promicro/config.h | 4 ----
keyboards/handwired/symmetric70_proto/proton_c/config.h | 4 ----
keyboards/handwired/t111/config.h | 4 ----
keyboards/handwired/tennie/config.h | 2 --
keyboards/handwired/terminus_mini/config.h | 2 --
keyboards/handwired/tractyl_manuform/4x6_right/config.h | 2 --
keyboards/handwired/tractyl_manuform/5x6_right/config.h | 2 --
keyboards/handwired/tractyl_manuform/config.h | 2 --
keyboards/handwired/traveller/config.h | 4 ----
keyboards/handwired/tritium_numpad/config.h | 3 ---
keyboards/handwired/twadlee/tp69/config.h | 4 ----
keyboards/handwired/unk/rev1/config.h | 2 --
keyboards/handwired/uthol/rev3/config.h | 4 ----
keyboards/handwired/videowriter/config.h | 4 ----
keyboards/handwired/woodpad/config.h | 4 ----
keyboards/handwired/xealous/rev1/config.h | 3 +--
keyboards/handwired/z150/config.h | 4 ----
keyboards/helix/pico/config.h | 2 --
keyboards/helix/rev2/config.h | 3 ---
keyboards/helix/rev3_4rows/config.h | 4 ----
keyboards/helix/rev3_5rows/config.h | 4 ----
keyboards/hhkb/ansi/config.h | 2 --
keyboards/hhkb/jp/config.h | 2 --
keyboards/hineybush/h08_ocelot/config.h | 4 ----
keyboards/hineybush/h10/config.h | 4 ----
keyboards/hineybush/h60/config.h | 4 ----
keyboards/hineybush/h65/config.h | 4 ----
keyboards/hineybush/h65_hotswap/config.h | 4 ----
keyboards/hineybush/h660s/config.h | 4 ----
keyboards/hineybush/h75_singa/config.h | 2 --
keyboards/hineybush/physix/config.h | 4 ----
keyboards/hineybush/sm68/config.h | 2 --
keyboards/hnahkb/freyr/config.h | 4 ----
keyboards/hnahkb/stella/config.h | 4 ----
keyboards/hnahkb/vn66/config.h | 4 ----
keyboards/honeycomb/config.h | 2 --
keyboards/horizon/config.h | 4 ----
keyboards/hotdox/config.h | 3 +--
keyboards/hub20/config.h | 4 ----
keyboards/ianklug/grooveboard/config.h | 4 ----
keyboards/ibnuda/gurindam/config.h | 2 --
keyboards/ibnuda/squiggle/config.h | 5 -----
keyboards/idb/idb_60/config.h | 2 --
keyboards/idobao/id75/v1/config.h | 2 --
keyboards/idobao/id75/v2/config.h | 2 --
keyboards/idobao/id87/v2/config.h | 4 ----
keyboards/illuminati/is0/config.h | 2 --
keyboards/illusion/rosa/config.h | 6 +-----
keyboards/ilumkb/primus75/config.h | 3 ---
keyboards/ilumkb/simpler61/config.h | 4 ----
keyboards/ilumkb/simpler64/config.h | 4 ----
keyboards/input_club/ergodox_infinity/config.h | 2 --
keyboards/input_club/infinity60/config.h | 2 --
keyboards/input_club/k_type/config.h | 4 ----
keyboards/input_club/whitefox/config.h | 4 ----
keyboards/irene/config.h | 4 ----
keyboards/iriskeyboards/config.h | 4 ----
keyboards/j80/config.h | 4 ----
keyboards/jacky_studio/s7_elephant/rev2/config.h | 4 ----
keyboards/jadookb/jkb65/config.h | 3 ---
keyboards/jae/j01/config.h | 4 ----
keyboards/jagdpietr/drakon/config.h | 4 ----
keyboards/jc65/v32a/config.h | 3 ---
keyboards/jd45/config.h | 2 --
keyboards/jm60/config.h | 4 ----
keyboards/jones/v03/config.h | 4 ----
keyboards/jones/v03_1/config.h | 4 ----
keyboards/jones/v1/config.h | 4 ----
keyboards/kagizaraya/chidori/config.h | 2 --
keyboards/kagizaraya/halberd/config.h | 2 --
keyboards/kagizaraya/scythe/config.h | 2 --
keyboards/kakunpc/angel17/alpha/config.h | 2 --
keyboards/kakunpc/angel17/rev1/config.h | 2 --
keyboards/kakunpc/angel64/alpha/config.h | 2 --
keyboards/kakunpc/angel64/rev1/config.h | 2 --
keyboards/kakunpc/business_card/alpha/config.h | 2 --
keyboards/kakunpc/business_card/beta/config.h | 2 --
keyboards/kakunpc/choc_taro/config.h | 4 ----
keyboards/kakunpc/rabbit_capture_plan/config.h | 4 ----
keyboards/kakunpc/suihankey/alpha/config.h | 2 --
keyboards/kakunpc/suihankey/rev1/config.h | 2 --
keyboards/kakunpc/suihankey/split/alpha/config.h | 2 --
keyboards/kakunpc/suihankey/split/rev1/config.h | 2 --
keyboards/kakunpc/thedogkeyboard/config.h | 2 --
keyboards/kapcave/arya/config.h | 2 --
keyboards/kb58/config.h | 4 ----
keyboards/kb_elmo/isolation/config.h | 4 ----
keyboards/kb_elmo/vertex/config.h | 4 ----
keyboards/kbdclack/kaishi65/config.h | 4 ----
keyboards/kbdfans/bella/rgb/config.h | 1 -
keyboards/kbdfans/bella/rgb_iso/config.h | 1 -
keyboards/kbdfans/boop65/rgb/config.h | 3 ---
keyboards/kbdfans/kbd19x/config.h | 3 ---
keyboards/kbdfans/kbd4x/config.h | 3 ---
keyboards/kbdfans/kbd66/config.h | 2 --
keyboards/kbdfans/kbd67/hotswap/config.h | 2 --
keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 4 +---
keyboards/kbdfans/kbd67/mkiirgb/v4/config.h | 4 +---
keyboards/kbdfans/kbd67/mkiirgb_iso/config.h | 4 +---
keyboards/kbdfans/kbd67/rev1/config.h | 2 --
keyboards/kbdfans/kbd6x/config.h | 3 ---
keyboards/kbdfans/kbd75hs/config.h | 3 ---
keyboards/kbdfans/kbd75rgb/config.h | 4 +---
keyboards/kbdfans/kbd8x/config.h | 2 --
keyboards/kbdfans/kbd8x_mk2/config.h | 2 --
keyboards/kbdfans/kbdmini/config.h | 4 ----
keyboards/kbdfans/kbdpad/mk2/config.h | 2 --
keyboards/kbdfans/niu_mini/config.h | 2 --
keyboards/kbdfans/odin/soldered/config.h | 3 +--
keyboards/kc60/config.h | 4 ----
keyboards/kc60se/config.h | 2 --
keyboards/keebio/bfo9000/config.h | 2 --
keyboards/keebio/bigswitchseat/config.h | 4 ----
keyboards/keebio/choconum/config.h | 4 ----
keyboards/keebio/ergodicity/config.h | 2 --
keyboards/keebio/fourier/config.h | 2 --
keyboards/keebio/nyquist/rev1/config.h | 2 --
keyboards/keebio/nyquist/rev2/config.h | 2 --
keyboards/keebio/nyquist/rev3/config.h | 2 --
keyboards/keebsforall/coarse60/config.h | 3 ---
keyboards/keebsforall/freebird60/config.h | 4 ----
keyboards/keebsforall/freebirdtkl/config.h | 3 ---
keyboards/keebwerk/nano_slider/config.h | 4 ----
keyboards/keebzdotnet/wazowski/config.h | 4 ----
keyboards/keybage/radpad/config.h | 4 ----
keyboards/keybee/keybee65/config.h | 3 ---
keyboards/keyboardio/atreus/config.h | 2 --
keyboards/keycapsss/o4l_5x12/config.h | 4 ----
keyboards/keyhive/maypad/config.h | 2 --
keyboards/keyprez/bison/config.h | 4 ----
keyboards/keyprez/corgi/config.h | 4 ----
keyboards/keyprez/rhino/config.h | 4 ----
keyboards/keyprez/unicorn/config.h | 4 ----
keyboards/kikkou/config.h | 4 ----
keyboards/kindakeyboards/conone65/config.h | 4 ----
keyboards/kinesis/config.h | 2 --
keyboards/kira75/config.h | 2 --
keyboards/kiwikeebs/macro/config.h | 4 ----
keyboards/kiwikeebs/macro_v2/config.h | 4 ----
keyboards/kiwikey/borderland/config.h | 4 ----
keyboards/kiwikey/kawii9/config.h | 4 ----
keyboards/kiwikey/wanderland/config.h | 4 ----
keyboards/kkatano/bakeneko60/config.h | 4 ----
keyboards/kkatano/bakeneko65/rev2/config.h | 4 ----
keyboards/kkatano/bakeneko65/rev3/config.h | 4 ----
keyboards/kkatano/bakeneko80/config.h | 4 ----
keyboards/kkatano/wallaby/config.h | 4 ----
keyboards/kkatano/yurei/config.h | 4 ----
keyboards/kmac/config.h | 2 --
keyboards/kmac_pad/config.h | 2 --
keyboards/knops/mini/config.h | 2 --
keyboards/kona_classic/config.h | 2 --
keyboards/kopibeng/xt65/config.h | 2 --
keyboards/kprepublic/bm16a/config.h | 2 --
keyboards/kprepublic/bm60hsrgb/rev2/config.h | 3 ---
keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h | 3 ---
keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h | 3 ---
keyboards/kprepublic/bm65hsrgb/rev1/config.h | 4 ----
keyboards/kprepublic/bm68hsrgb/rev1/config.h | 4 ----
keyboards/kprepublic/bm68hsrgb/rev2/config.h | 4 +---
keyboards/kprepublic/bm80hsrgb/config.h | 4 ----
keyboards/kprepublic/bm980hsrgb/config.h | 4 ----
keyboards/kprepublic/cospad/config.h | 4 ----
keyboards/ktec/daisy/config.h | 4 ----
keyboards/ktec/ergodone/config.h | 3 +--
keyboards/kudox/columner/config.h | 2 --
keyboards/kudox/rev1/config.h | 2 --
keyboards/kudox/rev2/config.h | 2 --
keyboards/kudox/rev3/config.h | 2 --
keyboards/kudox_full/rev1/config.h | 2 --
keyboards/kudox_game/rev1/config.h | 2 --
keyboards/kudox_game/rev2/config.h | 2 --
keyboards/ky01/config.h | 4 ----
keyboards/labyrinth75/config.h | 4 ----
keyboards/latincompass/latin17rgb/config.h | 4 ----
keyboards/latincompass/latin47ble/config.h | 2 --
keyboards/latincompass/latin60rgb/config.h | 4 ----
keyboards/latincompass/latin6rgb/config.h | 4 ----
keyboards/latincompass/latinpadble/config.h | 4 ----
keyboards/lattice60/config.h | 4 ----
keyboards/lets_split/rev1/config.h | 2 --
keyboards/lets_split/rev2/config.h | 2 --
keyboards/lfkeyboards/lfk65_hs/config.h | 2 --
keyboards/lfkeyboards/lfk78/config.h | 4 ----
keyboards/lfkeyboards/lfk87/config.h | 2 --
keyboards/lfkeyboards/lfkpad/config.h | 4 ----
keyboards/lfkeyboards/mini1800/config.h | 2 --
keyboards/lfkeyboards/smk65/revb/config.h | 2 --
keyboards/lfkeyboards/smk65/revf/config.h | 6 +-----
keyboards/lily58/config.h | 7 -------
keyboards/lily58/rev1/config.h | 2 --
keyboards/lime/rev1/config.h | 2 --
keyboards/linworks/fave84h/config.h | 3 ---
keyboards/linworks/fave87h/config.h | 3 ---
keyboards/lizard_trick/tenkey_plusplus/config.h | 4 ----
keyboards/lm_keyboard/lm60n/config.h | 4 ----
keyboards/lucid/alexa/config.h | 2 --
keyboards/lucid/kbd8x_hs/config.h | 2 --
keyboards/lucid/phantom_hs/config.h | 2 --
keyboards/lucid/phantom_solder/config.h | 2 --
keyboards/lucid/scarlet/config.h | 2 --
keyboards/m10a/config.h | 2 --
keyboards/machine_industries/m4_a/config.h | 4 ----
keyboards/majistic/config.h | 4 ----
keyboards/malevolti/lyra/rev1/config.h | 3 ---
keyboards/malevolti/superlyra/rev1/config.h | 3 ---
keyboards/manta60/config.h | 4 ----
keyboards/manyboard/macro/config.h | 3 ---
keyboards/maple_computing/c39/config.h | 2 --
keyboards/maple_computing/ivy/config.h | 2 --
keyboards/maple_computing/launchpad/config.h | 2 --
keyboards/maple_computing/minidox/config.h | 2 --
keyboards/maple_computing/the_ruler/config.h | 2 --
keyboards/marksard/leftover30/config.h | 4 ----
keyboards/marksard/treadstone48/rev1/config.h | 4 ----
keyboards/marksard/treadstone48/rev2/config.h | 4 ----
keyboards/massdrop/alt/config.h | 2 --
keyboards/massdrop/ctrl/config.h | 2 --
keyboards/matchstickworks/southpad/config.h | 2 --
keyboards/matthewdias/m3n3van/config.h | 4 ----
keyboards/matthewdias/minim/config.h | 4 ----
keyboards/matthewdias/model_v/config.h | 4 ----
keyboards/matthewdias/txuu/config.h | 4 ----
keyboards/maxipad/config.h | 2 --
keyboards/maxr1998/pulse4k/config.h | 2 --
keyboards/mb44/config.h | 6 ------
keyboards/mc_76k/config.h | 4 ----
keyboards/mechkeys/mk60/config.h | 2 --
keyboards/mechlovin/hannah910/config.h | 2 --
keyboards/mechlovin/jay60/config.h | 4 ----
keyboards/mechwild/bde/rev2/config.h | 4 ----
keyboards/mechwild/murphpad/config.h | 4 ----
keyboards/mechwild/obe/config.h | 4 ----
keyboards/mechwild/waka60/config.h | 4 ----
keyboards/melgeek/mach80/config.h | 4 ----
keyboards/melgeek/mj61/config.h | 4 ----
keyboards/melgeek/mj63/config.h | 4 ----
keyboards/melgeek/mj64/config.h | 4 ----
keyboards/melgeek/mj65/config.h | 4 ----
keyboards/melgeek/mojo68/config.h | 4 ----
keyboards/melgeek/mojo75/config.h | 4 ----
keyboards/melgeek/z70ultra/config.h | 4 ----
keyboards/meme/config.h | 2 --
keyboards/meow65/config.h | 4 ----
keyboards/mesa/mesa_tkl/config.h | 4 ----
keyboards/meson/config.h | 3 ---
keyboards/mikeneko65/rev3/config.h | 4 ----
keyboards/mikeneko65/rev4/config.h | 4 ----
keyboards/miller/gm862/config.h | 4 ----
keyboards/millipad/config.h | 8 +-------
keyboards/mini_elixivy/config.h | 6 +-----
keyboards/mini_ten_key_plus/config.h | 4 ----
keyboards/miniaxe/config.h | 2 --
keyboards/mint60/config.h | 2 --
keyboards/mitosis/config.h | 2 --
keyboards/miuni32/config.h | 2 --
keyboards/mlego/m48/config.h | 4 ----
keyboards/mlego/m60/config.h | 4 ----
keyboards/mlego/m60_split/config.h | 4 ----
keyboards/mntre/config.h | 4 ----
keyboards/mode/m65ha_alpha/config.h | 2 --
keyboards/mode/m65hi_alpha/config.h | 2 --
keyboards/mode/m65s/config.h | 2 --
keyboards/mode/m75h/config.h | 2 --
keyboards/mode/m75s/config.h | 2 --
keyboards/mode/m80v1/config.h | 2 --
keyboards/molecule/config.h | 4 ----
keyboards/momoka_ergo/config.h | 4 ----
keyboards/monarch/config.h | 2 --
keyboards/moonlander/config.h | 2 --
keyboards/morizon/config.h | 4 ----
keyboards/mountainblocks/mb17/config.h | 5 -----
keyboards/mschwingen/modelm/config.h | 2 --
keyboards/mt40/config.h | 2 --
keyboards/mtbkeys/mtb60/hotswap/config.h | 4 ----
keyboards/mtbkeys/mtb60/solder/config.h | 4 ----
keyboards/murcielago/rev1/config.h | 4 ----
keyboards/nacly/splitreus62/config.h | 2 --
keyboards/nacly/ua62/config.h | 2 --
keyboards/nemui/config.h | 2 --
keyboards/nibiria/stream15/config.h | 2 --
keyboards/nightingale_studios/hailey/config.h | 4 ----
keyboards/nightly_boards/alter/rev1/config.h | 7 -------
keyboards/nightly_boards/n2/config.h | 5 -----
keyboards/nightly_boards/n60_s/config.h | 3 ---
keyboards/nightly_boards/n87/config.h | 4 ----
keyboards/nightly_boards/n9/config.h | 5 -----
keyboards/nightmare/config.h | 2 --
keyboards/novelkeys/novelpad/config.h | 2 --
keyboards/noxary/220/config.h | 2 --
keyboards/noxary/260/config.h | 2 --
keyboards/noxary/268_2/config.h | 2 --
keyboards/noxary/280/config.h | 2 --
keyboards/noxary/378/config.h | 2 --
keyboards/noxary/valhalla/config.h | 2 --
keyboards/noxary/vulcan/config.h | 2 --
keyboards/noxary/x268/config.h | 2 --
keyboards/numatreus/config.h | 2 --
keyboards/oddball/config.h | 4 ----
keyboards/orthodox/rev1/config.h | 2 --
keyboards/orthodox/rev3/config.h | 2 --
keyboards/orthodox/rev3_teensy/config.h | 2 --
keyboards/paprikman/albacore/config.h | 4 ----
keyboards/parallel/parallel_65/hotswap/config.h | 4 ----
keyboards/parallel/parallel_65/soldered/config.h | 4 ----
keyboards/pdxkbc/config.h | 2 --
keyboards/pearl/config.h | 3 ---
keyboards/peranekofactory/tone/rev1/config.h | 4 ----
keyboards/peranekofactory/tone/rev2/config.h | 4 ----
keyboards/phantom/config.h | 4 ----
keyboards/pico/65keys/config.h | 2 --
keyboards/pico/70keys/config.h | 2 --
keyboards/pinky/3/config.h | 2 --
keyboards/pinky/4/config.h | 2 --
keyboards/pisces/config.h | 4 ----
keyboards/pizzakeyboards/pizza65/config.h | 4 ----
keyboards/planck/config.h | 2 --
keyboards/planck/ez/config.h | 2 --
keyboards/planck/rev6/config.h | 3 ---
keyboards/planck/rev6_drop/config.h | 2 --
keyboards/ploopyco/mouse/config.h | 2 --
keyboards/ploopyco/trackball/config.h | 2 --
keyboards/ploopyco/trackball_mini/config.h | 2 --
keyboards/ploopyco/trackball_nano/config.h | 2 --
keyboards/pluckey/config.h | 4 ----
keyboards/plume/plume65/config.h | 2 --
keyboards/plut0nium/0x3e/config.h | 4 ----
keyboards/pohjolaworks/louhi/config.h | 4 ----
keyboards/polilla/rev1/config.h | 4 ----
keyboards/portal_66/hotswap/config.h | 4 ----
keyboards/portal_66/soldered/config.h | 4 ----
keyboards/pos78/config.h | 4 ----
keyboards/preonic/config.h | 2 --
keyboards/preonic/rev3/config.h | 2 --
keyboards/preonic/rev3_drop/config.h | 2 --
keyboards/program_yoink/config.h | 4 ----
keyboards/projectcain/vault35/config.h | 6 +-----
keyboards/projectcain/vault45/config.h | 4 ----
keyboards/projectkb/alice/rev1/config.h | 2 --
keyboards/projectkb/alice/rev2/config.h | 2 --
keyboards/prototypist/allison/config.h | 4 ----
keyboards/prototypist/allison_numpad/config.h | 4 ----
keyboards/psuieee/pluto12/config.h | 4 ----
keyboards/pteron36/config.h | 6 +-----
keyboards/punk75/config.h | 4 ----
keyboards/qpockets/wanten/config.h | 4 ----
keyboards/quad_h/lb75/config.h | 2 --
keyboards/quantrik/kyuu/config.h | 2 --
keyboards/qwertyydox/config.h | 2 --
keyboards/rabbit/rabbit68/config.h | 2 --
keyboards/ramonimbao/aelith/config.h | 4 ----
keyboards/ramonimbao/chevron/config.h | 4 ----
keyboards/ramonimbao/herringbone/pro/config.h | 4 ----
keyboards/ramonimbao/herringbone/v1/config.h | 4 ----
keyboards/ramonimbao/mona/v1/config.h | 4 ----
keyboards/ramonimbao/mona/v1_1/config.h | 5 -----
keyboards/ramonimbao/mona/v32a/config.h | 5 -----
keyboards/ramonimbao/squishy65/config.h | 2 --
keyboards/ramonimbao/squishyfrl/config.h | 4 ----
keyboards/ramonimbao/squishytkl/config.h | 4 ----
keyboards/ramonimbao/tkl_ff/config.h | 4 ----
keyboards/ramonimbao/wete/v1/config.h | 2 --
keyboards/ramonimbao/wete/v2/config.h | 4 ----
keyboards/rart/rartlice/config.h | 2 --
keyboards/rate/pistachio/rev1/config.h | 4 ----
keyboards/rate/pistachio/rev2/config.h | 4 ----
keyboards/rate/pistachio_mp/config.h | 4 ----
keyboards/rate/pistachio_pro/config.h | 4 ----
keyboards/recompile_keys/mio/config.h | 4 ----
keyboards/recompile_keys/nomu30/rev2/config.h | 4 ----
keyboards/redox/rev1/config.h | 2 --
keyboards/redox/rev1/proton_c/config.h | 2 --
keyboards/redox_w/config.h | 2 --
keyboards/redscarf_iiplus/verb/config.h | 2 --
keyboards/redscarf_iiplus/verc/config.h | 2 --
keyboards/redscarf_iiplus/verd/config.h | 2 --
keyboards/retro_75/config.h | 2 --
keyboards/reversestudio/decadepad/config.h | 2 --
keyboards/reviung/reviung33/config.h | 4 ----
keyboards/reviung/reviung34/config.h | 2 --
keyboards/reviung/reviung39/config.h | 2 --
keyboards/reviung/reviung41/config.h | 2 --
keyboards/reviung/reviung5/config.h | 4 ----
keyboards/reviung/reviung53/config.h | 4 ----
keyboards/reviung/reviung61/config.h | 4 ----
keyboards/rgbkb/sol/config.h | 2 --
keyboards/rgbkb/zen/rev1/config.h | 2 --
keyboards/rgbkb/zen/rev2/config.h | 2 --
keyboards/rgbkb/zygomorph/rev1/config.h | 2 --
keyboards/rocketboard_16/config.h | 2 --
keyboards/rominronin/katana60/rev1/config.h | 2 --
keyboards/rominronin/katana60/rev2/config.h | 2 --
keyboards/roseslite/config.h | 2 --
keyboards/rubi/config.h | 4 ----
keyboards/runes/vaengr/config.h | 4 ----
keyboards/ryanbaekr/rb69/config.h | 4 ----
keyboards/ryanbaekr/rb86/config.h | 4 ----
keyboards/sandwich/keeb68/config.h | 4 ----
keyboards/satt/comet46/config.h | 2 --
keyboards/satt/vision/config.h | 2 --
keyboards/scatter42/config.h | 4 ----
keyboards/sck/m0116b/config.h | 2 --
keyboards/sck/neiso/config.h | 2 --
keyboards/sck/osa/config.h | 2 --
keyboards/sekigon/grs_70ec/config.h | 4 ----
keyboards/senselessclay/ck60/config.h | 4 ----
keyboards/senselessclay/ck65/config.h | 6 +-----
keyboards/senselessclay/gos65/config.h | 6 +-----
keyboards/senselessclay/had60/config.h | 4 ----
keyboards/sentraq/s60_x/default/config.h | 2 --
keyboards/shapeshifter4060/config.h | 2 --
keyboards/shiro/config.h | 2 --
keyboards/shk9/config.h | 4 ----
keyboards/sidderskb/majbritt/rev2/config.h | 3 ---
keyboards/silverbullet44/config.h | 4 ----
keyboards/sirius/uni660/rev1/config.h | 4 ----
keyboards/sirius/uni660/rev2/ansi/config.h | 4 ----
keyboards/sirius/uni660/rev2/iso/config.h | 4 ----
keyboards/sirius/unigo66/config.h | 2 --
keyboards/sixkeyboard/config.h | 2 --
keyboards/skippys_custom_pcs/roopad/config.h | 3 ---
keyboards/slz40/config.h | 4 ----
keyboards/smallice/config.h | 4 ----
keyboards/smallkeyboard/config.h | 4 ----
keyboards/smk60/config.h | 2 --
keyboards/snampad/config.h | 2 --
keyboards/sofle/rev1/config.h | 3 ---
keyboards/soup10/config.h | 4 ----
keyboards/spacetime/config.h | 2 --
keyboards/spacey/config.h | 5 -----
keyboards/specskeys/config.h | 4 ----
keyboards/splitty/config.h | 4 ----
keyboards/studiokestra/bourgeau/config.h | 2 --
keyboards/studiokestra/cascade/config.h | 2 --
keyboards/studiokestra/galatea/config.h | 4 ----
keyboards/studiokestra/nue/config.h | 4 ----
keyboards/subatomic/config.h | 2 --
keyboards/switchplate/southpaw_65/config.h | 2 --
keyboards/switchplate/southpaw_fullsize/config.h | 4 ----
keyboards/switchplate/switchplate910/config.h | 4 ----
keyboards/tada68/config.h | 2 --
keyboards/takashicompany/center_enter/config.h | 4 ----
keyboards/takashicompany/compacx/config.h | 4 ----
keyboards/takashicompany/dogtag/config.h | 4 ----
keyboards/takashicompany/endzone34/config.h | 4 ----
keyboards/takashicompany/heavy_left/config.h | 6 +-----
keyboards/takashicompany/qoolee/config.h | 6 +-----
keyboards/takashicompany/radialex/config.h | 4 ----
keyboards/takashiski/hecomi/alpha/config.h | 2 --
keyboards/takashiski/namecard2x4/rev1/config.h | 3 ---
keyboards/takashiski/namecard2x4/rev2/config.h | 3 ---
keyboards/takashiski/otaku_split/rev0/config.h | 2 --
keyboards/takashiski/otaku_split/rev1/config.h | 2 --
keyboards/tanuki/config.h | 2 --
keyboards/team0110/p1800fl/config.h | 6 +-----
keyboards/technika/config.h | 2 --
keyboards/telophase/config.h | 4 ----
keyboards/tetris/config.h | 3 ---
keyboards/tg4x/config.h | 2 --
keyboards/tgr/910ce/config.h | 5 -----
keyboards/thevankeyboards/jetvan/config.h | 2 --
keyboards/thevankeyboards/roadkit/config.h | 2 --
keyboards/tkc/california/config.h | 2 --
keyboards/tkc/candybar/lefty/config.h | 2 --
keyboards/tkc/candybar/lefty_r3/config.h | 2 --
keyboards/tkc/candybar/righty/config.h | 2 --
keyboards/tkc/candybar/righty_r3/config.h | 2 --
keyboards/tkc/godspeed75/config.h | 2 --
keyboards/tkc/m0lly/config.h | 4 ----
keyboards/tkc/osav2/config.h | 2 --
keyboards/tkc/portico/config.h | 4 ----
keyboards/tkc/portico68v2/config.h | 4 ----
keyboards/tkc/portico75/config.h | 4 ----
keyboards/tkc/tkc1800/config.h | 2 --
keyboards/tkc/tkl_ab87/config.h | 2 --
keyboards/tkw/grandiceps/config.h | 4 ----
keyboards/tkw/stoutgat/v1/config.h | 4 ----
keyboards/tkw/stoutgat/v2/config.h | 4 ----
keyboards/tmo50/config.h | 2 --
keyboards/touchpad/config.h | 2 --
keyboards/treasure/type9/config.h | 3 ---
keyboards/tszaboo/ortho4exent/config.h | 4 ----
keyboards/tw40/config.h | 3 ---
keyboards/unikeyboard/diverge3/config.h | 2 --
keyboards/unikeyboard/felix/config.h | 2 --
keyboards/unison/v04/config.h | 4 ----
keyboards/uranuma/config.h | 2 --
keyboards/uzu42/config.h | 3 ---
keyboards/uzu42/rev1/config.h | 2 --
keyboards/v4n4g0rth0n/config.h | 4 ----
keyboards/v60_type_r/config.h | 2 --
keyboards/viktus/smolka/config.h | 4 ----
keyboards/viktus/sp111/config.h | 4 ----
keyboards/viktus/sp_mini/config.h | 2 --
keyboards/viktus/styrka/config.h | 2 --
keyboards/vitamins_included/rev1/config.h | 2 --
keyboards/vitamins_included/rev2/config.h | 2 --
keyboards/waldo/config.h | 4 +---
keyboards/wavtype/foundation/config.h | 4 ----
keyboards/wekey/polaris/config.h | 4 ----
keyboards/wekey/stelo65/config.h | 4 ----
keyboards/wekey/we27/config.h | 4 ----
keyboards/westfoxtrot/cyclops/config.h | 2 --
keyboards/whale/sk/v3/config.h | 4 ----
keyboards/wilba_tech/rama_works_kara/config.h | 2 --
keyboards/wilba_tech/rama_works_koyu/config.h | 2 --
keyboards/wilba_tech/rama_works_m10_b/config.h | 2 --
keyboards/wilba_tech/rama_works_m10_c/config.h | 4 ----
keyboards/wilba_tech/rama_works_m50_a/config.h | 4 ----
keyboards/wilba_tech/rama_works_m50_ax/config.h | 4 ----
keyboards/wilba_tech/rama_works_m60_a/config.h | 2 --
keyboards/wilba_tech/rama_works_u80_a/config.h | 2 --
keyboards/wilba_tech/wt60_a/config.h | 2 --
keyboards/wilba_tech/wt60_d/config.h | 2 --
keyboards/wilba_tech/wt60_xt/config.h | 2 --
keyboards/wilba_tech/wt65_a/config.h | 2 --
keyboards/wilba_tech/wt65_b/config.h | 2 --
keyboards/wilba_tech/wt69_a/config.h | 2 --
keyboards/wilba_tech/wt75_a/config.h | 2 --
keyboards/wilba_tech/wt75_b/config.h | 2 --
keyboards/wilba_tech/wt75_c/config.h | 2 --
keyboards/wilba_tech/wt80_a/config.h | 2 --
keyboards/wilba_tech/zeal60/config.h | 2 --
keyboards/wilba_tech/zeal65/config.h | 4 +---
keyboards/winkeys/mini_winni/config.h | 4 ----
keyboards/wolf/kuku65/config.h | 3 ---
keyboards/wolf/sabre/config.h | 3 ---
keyboards/wolf/ts60/config.h | 3 ---
keyboards/wolfmarkclub/wm1/config.h | 2 --
keyboards/woodkeys/meira/featherble/config.h | 2 --
keyboards/woodkeys/meira/promicro/config.h | 2 --
keyboards/woodkeys/scarletbandana/config.h | 3 ---
keyboards/work_louder/loop/config.h | 4 ----
keyboards/work_louder/nano/config.h | 4 ----
keyboards/work_louder/work_board/config.h | 4 ----
keyboards/wren/config.h | 4 ----
keyboards/x16/config.h | 2 --
keyboards/xbows/knight/config.h | 4 ----
keyboards/xbows/knight_plus/config.h | 4 ----
keyboards/xbows/nature/config.h | 4 ----
keyboards/xbows/numpad/config.h | 4 ----
keyboards/xbows/ranger/config.h | 4 ----
keyboards/xelus/dawn60/rev1/config.h | 2 --
keyboards/xiaomi/mk02/config.h | 2 --
keyboards/xiudi/xd004/v1/config.h | 2 --
keyboards/xiudi/xd68/config.h | 2 --
keyboards/xiudi/xd75/config.h | 4 ----
keyboards/xiudi/xd84/config.h | 2 --
keyboards/xiudi/xd84pro/config.h | 3 ---
keyboards/xiudi/xd87/config.h | 3 ---
keyboards/xiudi/xd96/config.h | 2 --
keyboards/yampad/config.h | 2 --
keyboards/ydkb/chili/config.h | 2 --
keyboards/ydkb/just60/config.h | 4 ----
keyboards/ydkb/yd68/config.h | 3 ---
keyboards/yiancardesigns/barleycorn/config.h | 2 --
keyboards/yiancardesigns/gingham/config.h | 3 ---
keyboards/yiancardesigns/seigaiha/config.h | 2 --
keyboards/ymdk/np21/config.h | 4 ----
keyboards/ymdk/sp64/config.h | 4 ----
keyboards/ymdk/ymd09/config.h | 4 ----
keyboards/yoichiro/lunakey_macro/config.h | 4 ----
keyboards/yoichiro/lunakey_mini/config.h | 4 ----
keyboards/yosino58/config.h | 3 ---
keyboards/yosino58/rev1/config.h | 2 --
keyboards/yugo_m/model_m_101/config.h | 2 --
keyboards/yushakobo/navpad/10/config.h | 6 +-----
keyboards/yushakobo/navpad/10_helix_r/config.h | 6 +-----
keyboards/yushakobo/quick17/config.h | 4 ----
keyboards/yushakobo/quick7/config.h | 6 ------
keyboards/yynmt/acperience12/rev1/config.h | 4 ----
keyboards/yynmt/dozen0/config.h | 2 --
keyboards/yynmt/kagamidget/config.h | 2 --
keyboards/ziggurat/config.h | 4 ----
keyboards/zoo/wampus/config.h | 4 ----
keyboards/zvecr/split_blackpill/config.h | 4 ----
keyboards/zvecr/zv48/config.h | 4 ----
958 files changed, 32 insertions(+), 2807 deletions(-)
diff --git a/keyboards/0_sixty/config.h b/keyboards/0_sixty/config.h
index fa371a54cc39..9d9394c14fdb 100644
--- a/keyboards/0_sixty/config.h
+++ b/keyboards/0_sixty/config.h
@@ -64,5 +64,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/0_sixty/underglow/config.h b/keyboards/0_sixty/underglow/config.h
index 5f4ebd4c4535..1cff58d944d8 100644
--- a/keyboards/0_sixty/underglow/config.h
+++ b/keyboards/0_sixty/underglow/config.h
@@ -58,5 +58,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/0xc7/61key/config.h b/keyboards/0xc7/61key/config.h
index d1edf3284e1c..11b01ad8b60d 100644
--- a/keyboards/0xc7/61key/config.h
+++ b/keyboards/0xc7/61key/config.h
@@ -136,10 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/1upkeyboards/1up60hse/config.h b/keyboards/1upkeyboards/1up60hse/config.h
index 3f4f742b480d..2396e9083b49 100644
--- a/keyboards/1upkeyboards/1up60hse/config.h
+++ b/keyboards/1upkeyboards/1up60hse/config.h
@@ -108,5 +108,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/1upkeyboards/super16/config.h b/keyboards/1upkeyboards/super16/config.h
index 354f0680e820..fd11e13fe114 100644
--- a/keyboards/1upkeyboards/super16/config.h
+++ b/keyboards/1upkeyboards/super16/config.h
@@ -181,8 +181,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/1upkeyboards/super16v2/config.h b/keyboards/1upkeyboards/super16v2/config.h
index 77bb89d954f0..4685e66b2db1 100644
--- a/keyboards/1upkeyboards/super16v2/config.h
+++ b/keyboards/1upkeyboards/super16v2/config.h
@@ -135,10 +135,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/25keys/aleth42/rev0/config.h b/keyboards/25keys/aleth42/rev0/config.h
index da10e30a4fae..8424b2edc34e 100644
--- a/keyboards/25keys/aleth42/rev0/config.h
+++ b/keyboards/25keys/aleth42/rev0/config.h
@@ -76,7 +76,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
\ No newline at end of file
diff --git a/keyboards/25keys/zinc/rev1/config.h b/keyboards/25keys/zinc/rev1/config.h
index a0bc34ece4ae..43af843a0bd0 100644
--- a/keyboards/25keys/zinc/rev1/config.h
+++ b/keyboards/25keys/zinc/rev1/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/25keys/zinc/reva/config.h b/keyboards/25keys/zinc/reva/config.h
index 378fd9e6d9fa..428c704d1928 100644
--- a/keyboards/25keys/zinc/reva/config.h
+++ b/keyboards/25keys/zinc/reva/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/3keyecosystem/2key2/config.h b/keyboards/3keyecosystem/2key2/config.h
index 58010eea5513..80e864ce9d20 100644
--- a/keyboards/3keyecosystem/2key2/config.h
+++ b/keyboards/3keyecosystem/2key2/config.h
@@ -91,7 +91,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/3w6/rev1/config.h b/keyboards/3w6/rev1/config.h
index 1f0bab97fa12..0c14dc72d355 100644
--- a/keyboards/3w6/rev1/config.h
+++ b/keyboards/3w6/rev1/config.h
@@ -56,8 +56,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/3w6/rev2/config.h b/keyboards/3w6/rev2/config.h
index d191360607ea..4101aa76cdc4 100644
--- a/keyboards/3w6/rev2/config.h
+++ b/keyboards/3w6/rev2/config.h
@@ -56,8 +56,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/40percentclub/25/config.h b/keyboards/40percentclub/25/config.h
index 292854f68f1c..c753f7c29f65 100644
--- a/keyboards/40percentclub/25/config.h
+++ b/keyboards/40percentclub/25/config.h
@@ -116,5 +116,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/40percentclub/4pack/config.h b/keyboards/40percentclub/4pack/config.h
index 305e71e542e9..943b918d56bb 100644
--- a/keyboards/40percentclub/4pack/config.h
+++ b/keyboards/40percentclub/4pack/config.h
@@ -137,8 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/40percentclub/4x4/config.h b/keyboards/40percentclub/4x4/config.h
index b74eb62c1e8f..44628ac741bb 100644
--- a/keyboards/40percentclub/4x4/config.h
+++ b/keyboards/40percentclub/4x4/config.h
@@ -83,5 +83,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/40percentclub/5x5/config.h b/keyboards/40percentclub/5x5/config.h
index 62d63b8afa4a..460f5ba93d64 100644
--- a/keyboards/40percentclub/5x5/config.h
+++ b/keyboards/40percentclub/5x5/config.h
@@ -92,5 +92,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/40percentclub/6lit/config.h b/keyboards/40percentclub/6lit/config.h
index e402932b2191..302decc1624c 100644
--- a/keyboards/40percentclub/6lit/config.h
+++ b/keyboards/40percentclub/6lit/config.h
@@ -117,5 +117,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/40percentclub/foobar/config.h b/keyboards/40percentclub/foobar/config.h
index 3f6cb1f10c3c..afc50acb7eb6 100644
--- a/keyboards/40percentclub/foobar/config.h
+++ b/keyboards/40percentclub/foobar/config.h
@@ -117,5 +117,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/40percentclub/half_n_half/config.h b/keyboards/40percentclub/half_n_half/config.h
index 292ac485bd1a..2ed218199f49 100644
--- a/keyboards/40percentclub/half_n_half/config.h
+++ b/keyboards/40percentclub/half_n_half/config.h
@@ -126,8 +126,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/40percentclub/i75/config.h b/keyboards/40percentclub/i75/config.h
index bce564c042aa..2bf67cff1d22 100644
--- a/keyboards/40percentclub/i75/config.h
+++ b/keyboards/40percentclub/i75/config.h
@@ -72,8 +72,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/40percentclub/mf68/config.h b/keyboards/40percentclub/mf68/config.h
index 2ed8c8719550..404cd6f7d3af 100644
--- a/keyboards/40percentclub/mf68/config.h
+++ b/keyboards/40percentclub/mf68/config.h
@@ -115,5 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/40percentclub/nein/config.h b/keyboards/40percentclub/nein/config.h
index 4dfb143e52e7..53c227d832b1 100644
--- a/keyboards/40percentclub/nein/config.h
+++ b/keyboards/40percentclub/nein/config.h
@@ -121,8 +121,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/40percentclub/nori/config.h b/keyboards/40percentclub/nori/config.h
index 0fed3daf1110..bf0507716fdc 100644
--- a/keyboards/40percentclub/nori/config.h
+++ b/keyboards/40percentclub/nori/config.h
@@ -105,5 +105,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/40percentclub/polyandry/config.h b/keyboards/40percentclub/polyandry/config.h
index 1fd3e22f49be..bc0683f6fb47 100644
--- a/keyboards/40percentclub/polyandry/config.h
+++ b/keyboards/40percentclub/polyandry/config.h
@@ -75,8 +75,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/abacus/config.h b/keyboards/abacus/config.h
index eee2f3f91928..5a627e630a2d 100644
--- a/keyboards/abacus/config.h
+++ b/keyboards/abacus/config.h
@@ -102,7 +102,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/abstract/ellipse/rev1/config.h b/keyboards/abstract/ellipse/rev1/config.h
index 6e16c8d228dd..060229abb2d1 100644
--- a/keyboards/abstract/ellipse/rev1/config.h
+++ b/keyboards/abstract/ellipse/rev1/config.h
@@ -127,8 +127,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/acekeyboard/titan60/config.h b/keyboards/acekeyboard/titan60/config.h
index 67d02c98ea07..6cfaa7980eb8 100644
--- a/keyboards/acekeyboard/titan60/config.h
+++ b/keyboards/acekeyboard/titan60/config.h
@@ -80,7 +80,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/acheron/arctic/config.h b/keyboards/acheron/arctic/config.h
index 4056ad007319..1275eb5a65d5 100644
--- a/keyboards/acheron/arctic/config.h
+++ b/keyboards/acheron/arctic/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/acheron/austin/config.h b/keyboards/acheron/austin/config.h
index e90fb0ee7c83..ddbd6975d4b9 100644
--- a/keyboards/acheron/austin/config.h
+++ b/keyboards/acheron/austin/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/acheron/elongate/beta/config.h b/keyboards/acheron/elongate/beta/config.h
index c02cf0897978..874183362c02 100644
--- a/keyboards/acheron/elongate/beta/config.h
+++ b/keyboards/acheron/elongate/beta/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/acheron/keebspcb/config.h b/keyboards/acheron/keebspcb/config.h
index 70ffc52615b9..05e08f74f7e4 100644
--- a/keyboards/acheron/keebspcb/config.h
+++ b/keyboards/acheron/keebspcb/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/acheron/lasgweloth/config.h b/keyboards/acheron/lasgweloth/config.h
index e131787f76c6..f9a2427faea3 100644
--- a/keyboards/acheron/lasgweloth/config.h
+++ b/keyboards/acheron/lasgweloth/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/acheron/shark/config.h b/keyboards/acheron/shark/config.h
index 78f763fe90c8..cd2d88129c0b 100644
--- a/keyboards/acheron/shark/config.h
+++ b/keyboards/acheron/shark/config.h
@@ -148,8 +148,6 @@ B0, which is unconnected on the PCB
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ada/infinity81/config.h b/keyboards/ada/infinity81/config.h
index 1cbce84720b6..af28efeae2a6 100644
--- a/keyboards/ada/infinity81/config.h
+++ b/keyboards/ada/infinity81/config.h
@@ -117,10 +117,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/adelheid/config.h b/keyboards/adelheid/config.h
index 487559af1662..aca9bdc701c2 100644
--- a/keyboards/adelheid/config.h
+++ b/keyboards/adelheid/config.h
@@ -127,5 +127,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/adkb96/rev1/config.h b/keyboards/adkb96/rev1/config.h
index c5b768721c34..9727e7eaf7a2 100644
--- a/keyboards/adkb96/rev1/config.h
+++ b/keyboards/adkb96/rev1/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/adpenrose/kintsugi/config.h b/keyboards/adpenrose/kintsugi/config.h
index cbd38b6664b2..b3aca40a06c4 100644
--- a/keyboards/adpenrose/kintsugi/config.h
+++ b/keyboards/adpenrose/kintsugi/config.h
@@ -137,10 +137,6 @@ increase the value. If you need 2 clicks for 1 keycode, decrease*/
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/afternoonlabs/breeze/config.h b/keyboards/afternoonlabs/breeze/config.h
index 48331fa076e5..0b832322a3d9 100644
--- a/keyboards/afternoonlabs/breeze/config.h
+++ b/keyboards/afternoonlabs/breeze/config.h
@@ -17,6 +17,3 @@
#pragma once
#include "config_common.h"
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/afternoonlabs/gust/config.h b/keyboards/afternoonlabs/gust/config.h
index 48331fa076e5..0b832322a3d9 100644
--- a/keyboards/afternoonlabs/gust/config.h
+++ b/keyboards/afternoonlabs/gust/config.h
@@ -17,6 +17,3 @@
#pragma once
#include "config_common.h"
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/afternoonlabs/oceanbreeze/config.h b/keyboards/afternoonlabs/oceanbreeze/config.h
index 1197fa225740..71eaed42a22d 100644
--- a/keyboards/afternoonlabs/oceanbreeze/config.h
+++ b/keyboards/afternoonlabs/oceanbreeze/config.h
@@ -17,6 +17,3 @@
#pragma once
#include "config_common.h"
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/afternoonlabs/southern_breeze/config.h b/keyboards/afternoonlabs/southern_breeze/config.h
index 1197fa225740..71eaed42a22d 100644
--- a/keyboards/afternoonlabs/southern_breeze/config.h
+++ b/keyboards/afternoonlabs/southern_breeze/config.h
@@ -17,6 +17,3 @@
#pragma once
#include "config_common.h"
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/afternoonlabs/summer_breeze/config.h b/keyboards/afternoonlabs/summer_breeze/config.h
index 1197fa225740..71eaed42a22d 100644
--- a/keyboards/afternoonlabs/summer_breeze/config.h
+++ b/keyboards/afternoonlabs/summer_breeze/config.h
@@ -17,6 +17,3 @@
#pragma once
#include "config_common.h"
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ai03/equinox/config.h b/keyboards/ai03/equinox/config.h
index 5130f510b64d..4a6b841b60b3 100644
--- a/keyboards/ai03/equinox/config.h
+++ b/keyboards/ai03/equinox/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ai03/jp60/config.h b/keyboards/ai03/jp60/config.h
index a06d75c8e513..2e4832154653 100644
--- a/keyboards/ai03/jp60/config.h
+++ b/keyboards/ai03/jp60/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ai03/lunar/config.h b/keyboards/ai03/lunar/config.h
index 9ee8cbf6f8ff..65f428776f4d 100644
--- a/keyboards/ai03/lunar/config.h
+++ b/keyboards/ai03/lunar/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h
index 0e4f4c3baf84..1b745b4e1f9b 100644
--- a/keyboards/ai03/orbit/config.h
+++ b/keyboards/ai03/orbit/config.h
@@ -140,8 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ai03/orbit_x/config.h b/keyboards/ai03/orbit_x/config.h
index 7d3e8ef51135..74acd647469c 100644
--- a/keyboards/ai03/orbit_x/config.h
+++ b/keyboards/ai03/orbit_x/config.h
@@ -110,10 +110,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ai03/polaris/config.h b/keyboards/ai03/polaris/config.h
index 0cd6e6f58089..2d869dd0bd5d 100644
--- a/keyboards/ai03/polaris/config.h
+++ b/keyboards/ai03/polaris/config.h
@@ -107,8 +107,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ai03/quasar/config.h b/keyboards/ai03/quasar/config.h
index 2563125be0da..97fa2df2da7d 100644
--- a/keyboards/ai03/quasar/config.h
+++ b/keyboards/ai03/quasar/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ai03/soyuz/config.h b/keyboards/ai03/soyuz/config.h
index feb55107c3f3..8022145cebd2 100644
--- a/keyboards/ai03/soyuz/config.h
+++ b/keyboards/ai03/soyuz/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ai03/vega/config.h b/keyboards/ai03/vega/config.h
index ac589276a7e7..5f94ea9a7db4 100644
--- a/keyboards/ai03/vega/config.h
+++ b/keyboards/ai03/vega/config.h
@@ -59,5 +59,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ai03/voyager60_alps/config.h b/keyboards/ai03/voyager60_alps/config.h
index cd749cc50523..cd06071989b8 100644
--- a/keyboards/ai03/voyager60_alps/config.h
+++ b/keyboards/ai03/voyager60_alps/config.h
@@ -90,8 +90,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h
index c8edb8ebfe54..078e9cb41e01 100644
--- a/keyboards/al1/config.h
+++ b/keyboards/al1/config.h
@@ -88,7 +88,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/aleblazer/zodiark/config.h b/keyboards/aleblazer/zodiark/config.h
index 84795f024b67..a3ea6382e412 100644
--- a/keyboards/aleblazer/zodiark/config.h
+++ b/keyboards/aleblazer/zodiark/config.h
@@ -25,8 +25,6 @@ along with this program. If not, see .
#define MANUFACTURER Aleblazer
#define PRODUCT Zodiark
-#define NO_ACTION_MACRO
-
#define SOFT_SERIAL_PIN D3
#define SERIAL_USE_MULTI_TRANSACTION
#define SELECT_SOFT_SERIAL_SPEED 1
diff --git a/keyboards/alf/dc60/config.h b/keyboards/alf/dc60/config.h
index 5c3768532263..bdbea9578cda 100644
--- a/keyboards/alf/dc60/config.h
+++ b/keyboards/alf/dc60/config.h
@@ -117,5 +117,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/alf/x11/config.h b/keyboards/alf/x11/config.h
index 437f1e22ba48..a489174b2d6a 100644
--- a/keyboards/alf/x11/config.h
+++ b/keyboards/alf/x11/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/alpine65/config.h b/keyboards/alpine65/config.h
index 68aae5638355..ce674396abce 100644
--- a/keyboards/alpine65/config.h
+++ b/keyboards/alpine65/config.h
@@ -72,5 +72,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/alps64/config.h b/keyboards/alps64/config.h
index 31837b3a9ee5..640bab8bca14 100644
--- a/keyboards/alps64/config.h
+++ b/keyboards/alps64/config.h
@@ -68,5 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/amj40/config.h b/keyboards/amj40/config.h
index 7fce438337ea..71a8d34413e8 100755
--- a/keyboards/amj40/config.h
+++ b/keyboards/amj40/config.h
@@ -84,5 +84,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/amj60/config.h b/keyboards/amj60/config.h
index 8d53efd3f393..1c25e4fea058 100644
--- a/keyboards/amj60/config.h
+++ b/keyboards/amj60/config.h
@@ -109,10 +109,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/amj96/config.h b/keyboards/amj96/config.h
index 5de56683a69e..f5b26220b797 100644
--- a/keyboards/amj96/config.h
+++ b/keyboards/amj96/config.h
@@ -129,5 +129,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/amjkeyboard/amj84/config.h b/keyboards/amjkeyboard/amj84/config.h
index 279d1268e8d3..569c06dac2a5 100644
--- a/keyboards/amjkeyboard/amj84/config.h
+++ b/keyboards/amjkeyboard/amj84/config.h
@@ -103,10 +103,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/amjpad/config.h b/keyboards/amjpad/config.h
index f1d57592b533..dd8ed34e4746 100644
--- a/keyboards/amjpad/config.h
+++ b/keyboards/amjpad/config.h
@@ -84,5 +84,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/arabica37/rev1/config.h b/keyboards/arabica37/rev1/config.h
index 7951bc49ea6e..c0339a1a09ca 100644
--- a/keyboards/arabica37/rev1/config.h
+++ b/keyboards/arabica37/rev1/config.h
@@ -77,5 +77,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/arisu/config.h b/keyboards/arisu/config.h
index 8cadc50741cc..8e2da440c274 100644
--- a/keyboards/arisu/config.h
+++ b/keyboards/arisu/config.h
@@ -127,5 +127,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ash1800/config.h b/keyboards/ash1800/config.h
index 051db87a79a2..7b55f31bd399 100644
--- a/keyboards/ash1800/config.h
+++ b/keyboards/ash1800/config.h
@@ -140,8 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ashpil/modelm_usbc/config.h b/keyboards/ashpil/modelm_usbc/config.h
index f383a3071493..857217152737 100644
--- a/keyboards/ashpil/modelm_usbc/config.h
+++ b/keyboards/ashpil/modelm_usbc/config.h
@@ -66,8 +66,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/at_at/660m/config.h b/keyboards/at_at/660m/config.h
index 41443f8ae624..5a53e8c38af4 100644
--- a/keyboards/at_at/660m/config.h
+++ b/keyboards/at_at/660m/config.h
@@ -65,5 +65,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/atlas_65/config.h b/keyboards/atlas_65/config.h
index d96c2c3976df..86613cb193a2 100644
--- a/keyboards/atlas_65/config.h
+++ b/keyboards/atlas_65/config.h
@@ -126,5 +126,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h
index cb4aee0f7fc1..095cac906caf 100644
--- a/keyboards/atomic/config.h
+++ b/keyboards/atomic/config.h
@@ -99,5 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/atreus/config.h b/keyboards/atreus/config.h
index 07f4d7f15a26..ae3eb4f23250 100644
--- a/keyboards/atreus/config.h
+++ b/keyboards/atreus/config.h
@@ -59,5 +59,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/atreus62/config.h b/keyboards/atreus62/config.h
index 31baef145f09..2bb3da484c42 100644
--- a/keyboards/atreus62/config.h
+++ b/keyboards/atreus62/config.h
@@ -68,5 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/atxkb/1894/config.h b/keyboards/atxkb/1894/config.h
index c59efe91a746..fd621e169a5b 100644
--- a/keyboards/atxkb/1894/config.h
+++ b/keyboards/atxkb/1894/config.h
@@ -107,8 +107,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/aves60/config.h b/keyboards/aves60/config.h
index 9f90b2109e1b..d44951a4ce14 100644
--- a/keyboards/aves60/config.h
+++ b/keyboards/aves60/config.h
@@ -130,10 +130,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 4
#define BOOTMAGIC_LITE_COLUMN 6
diff --git a/keyboards/baguette/config.h b/keyboards/baguette/config.h
index 9a6b08ed9ebd..b4937579a355 100644
--- a/keyboards/baguette/config.h
+++ b/keyboards/baguette/config.h
@@ -114,5 +114,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bandominedoni/config.h b/keyboards/bandominedoni/config.h
index e1e4d874054d..d95b6005363f 100644
--- a/keyboards/bandominedoni/config.h
+++ b/keyboards/bandominedoni/config.h
@@ -240,10 +240,6 @@
// NO_ACTION_ONESHOT -388 bytes
#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/bantam44/config.h b/keyboards/bantam44/config.h
index 6cff8b2899ed..2745f5c04554 100644
--- a/keyboards/bantam44/config.h
+++ b/keyboards/bantam44/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/barleycorn_smd/config.h b/keyboards/barleycorn_smd/config.h
index 2ac86bf8a866..e56992f1fc40 100644
--- a/keyboards/barleycorn_smd/config.h
+++ b/keyboards/barleycorn_smd/config.h
@@ -107,5 +107,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/barracuda/config.h b/keyboards/barracuda/config.h
index 97eee0bd655c..9b83522b1a37 100644
--- a/keyboards/barracuda/config.h
+++ b/keyboards/barracuda/config.h
@@ -53,7 +53,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/bastardkb/charybdis/3x5/config.h b/keyboards/bastardkb/charybdis/3x5/config.h
index 9c69f7c35833..89b896bc35ae 100644
--- a/keyboards/bastardkb/charybdis/3x5/config.h
+++ b/keyboards/bastardkb/charybdis/3x5/config.h
@@ -58,10 +58,6 @@
/* Set 0 if debouncing isn't needed. */
#define DEBOUNCE 5
-/* Disable action features. */
-#define NO_ACTION_MACRO // Disable old-style macro handling.
-#define NO_ACTION_FUNCTION // Disable old-style function handling.
-
/* PMW3360 settings. */
#define PMW3360_CS_PIN B0
diff --git a/keyboards/bastardkb/charybdis/4x6/config.h b/keyboards/bastardkb/charybdis/4x6/config.h
index f00fb382f651..423f12fdbec1 100644
--- a/keyboards/bastardkb/charybdis/4x6/config.h
+++ b/keyboards/bastardkb/charybdis/4x6/config.h
@@ -60,10 +60,6 @@
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
-/* Disable action features. */
-#define NO_ACTION_MACRO // Disable old-style macro handling.
-#define NO_ACTION_FUNCTION // Disable old-style function handling.
-
/* PMW3360 settings. */
#define PMW3360_CS_PIN B0
diff --git a/keyboards/bear_face/config.h b/keyboards/bear_face/config.h
index 9b389f127ad3..593f8a23a4b4 100644
--- a/keyboards/bear_face/config.h
+++ b/keyboards/bear_face/config.h
@@ -95,5 +95,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/biacco42/ergo42/rev1/config.h b/keyboards/biacco42/ergo42/rev1/config.h
index a6bf914515d0..c8bfe1170f29 100644
--- a/keyboards/biacco42/ergo42/rev1/config.h
+++ b/keyboards/biacco42/ergo42/rev1/config.h
@@ -76,5 +76,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/biacco42/meishi/config.h b/keyboards/biacco42/meishi/config.h
index 6664e371a19d..ff6c22dc569a 100644
--- a/keyboards/biacco42/meishi/config.h
+++ b/keyboards/biacco42/meishi/config.h
@@ -106,5 +106,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/biacco42/meishi2/config.h b/keyboards/biacco42/meishi2/config.h
index df3203991cdb..57a4e226a309 100644
--- a/keyboards/biacco42/meishi2/config.h
+++ b/keyboards/biacco42/meishi2/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/bioi/f60/config.h b/keyboards/bioi/f60/config.h
index a0d498b90e68..40a7f6250fd0 100644
--- a/keyboards/bioi/f60/config.h
+++ b/keyboards/bioi/f60/config.h
@@ -66,7 +66,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/blank/blank01/config.h b/keyboards/blank/blank01/config.h
index 5b28e8199c91..5ebf8c774a86 100644
--- a/keyboards/blank/blank01/config.h
+++ b/keyboards/blank/blank01/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/blockey/config.h b/keyboards/blockey/config.h
index 7ad3311c71f0..d954be2d7ea0 100644
--- a/keyboards/blockey/config.h
+++ b/keyboards/blockey/config.h
@@ -110,5 +110,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/boardrun/bizarre/config.h b/keyboards/boardrun/bizarre/config.h
index 6e08d1f4a71f..9f4b91e2b563 100644
--- a/keyboards/boardrun/bizarre/config.h
+++ b/keyboards/boardrun/bizarre/config.h
@@ -71,8 +71,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN B7 // pin the DI on the ws2812 is hooked-up to
diff --git a/keyboards/boardrun/classic/config.h b/keyboards/boardrun/classic/config.h
index 6c814eb373db..754c42975f97 100644
--- a/keyboards/boardrun/classic/config.h
+++ b/keyboards/boardrun/classic/config.h
@@ -71,8 +71,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN B7 // pin the DI on the ws2812 is hooked-up to
diff --git a/keyboards/boardsource/3x4/config.h b/keyboards/boardsource/3x4/config.h
index 01d163ca5021..b7a067bb6f9d 100644
--- a/keyboards/boardsource/3x4/config.h
+++ b/keyboards/boardsource/3x4/config.h
@@ -68,5 +68,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/boardsource/4x12/config.h b/keyboards/boardsource/4x12/config.h
index 967bb1c9f032..4df24944f8fe 100644
--- a/keyboards/boardsource/4x12/config.h
+++ b/keyboards/boardsource/4x12/config.h
@@ -66,5 +66,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/boardsource/5x12/config.h b/keyboards/boardsource/5x12/config.h
index 455965a09ef0..f70dec9efbb5 100644
--- a/keyboards/boardsource/5x12/config.h
+++ b/keyboards/boardsource/5x12/config.h
@@ -67,5 +67,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/boardsource/beiwagon/config.h b/keyboards/boardsource/beiwagon/config.h
index 797da34613ef..72386c4236f7 100644
--- a/keyboards/boardsource/beiwagon/config.h
+++ b/keyboards/boardsource/beiwagon/config.h
@@ -160,10 +160,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/boardsource/holiday/spooky/config.h b/keyboards/boardsource/holiday/spooky/config.h
index 92eb4c32acbc..87d63b0d9ec3 100644
--- a/keyboards/boardsource/holiday/spooky/config.h
+++ b/keyboards/boardsource/holiday/spooky/config.h
@@ -124,10 +124,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/boardsource/microdox/config.h b/keyboards/boardsource/microdox/config.h
index 65af0f16dee6..7e6347dbdad3 100644
--- a/keyboards/boardsource/microdox/config.h
+++ b/keyboards/boardsource/microdox/config.h
@@ -76,5 +76,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
\ No newline at end of file
diff --git a/keyboards/boardsource/technik_o/config.h b/keyboards/boardsource/technik_o/config.h
index 51c9529da46f..146141a91121 100644
--- a/keyboards/boardsource/technik_o/config.h
+++ b/keyboards/boardsource/technik_o/config.h
@@ -160,10 +160,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h
index 7b5f297c9e48..a34ab1577a8d 100644
--- a/keyboards/boardsource/technik_s/config.h
+++ b/keyboards/boardsource/technik_s/config.h
@@ -160,10 +160,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/boardsource/the_mark/config.h b/keyboards/boardsource/the_mark/config.h
index cbfe4cd51096..99696e5d28a3 100644
--- a/keyboards/boardsource/the_mark/config.h
+++ b/keyboards/boardsource/the_mark/config.h
@@ -151,10 +151,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/boardwalk/config.h b/keyboards/boardwalk/config.h
index b98b709738f9..03e481ce6225 100644
--- a/keyboards/boardwalk/config.h
+++ b/keyboards/boardwalk/config.h
@@ -71,8 +71,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN B7 // pin the DI on the ws2812 is hooked-up to
diff --git a/keyboards/boston/config.h b/keyboards/boston/config.h
index ff9c253ded5c..247616d3da29 100644
--- a/keyboards/boston/config.h
+++ b/keyboards/boston/config.h
@@ -88,5 +88,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/boston_meetup/2019/config.h b/keyboards/boston_meetup/2019/config.h
index 138dedab5709..99ce9e85db2b 100644
--- a/keyboards/boston_meetup/2019/config.h
+++ b/keyboards/boston_meetup/2019/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Haptic Driver initialization settings
* Feedback Control Settings */
diff --git a/keyboards/boston_meetup/config.h b/keyboards/boston_meetup/config.h
index 013b0b148454..60e490435f51 100644
--- a/keyboards/boston_meetup/config.h
+++ b/keyboards/boston_meetup/config.h
@@ -55,5 +55,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/box75/config.h b/keyboards/box75/config.h
index b3b52c87303f..b6bcc31b0ab2 100644
--- a/keyboards/box75/config.h
+++ b/keyboards/box75/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bpiphany/frosty_flake/config.h b/keyboards/bpiphany/frosty_flake/config.h
index a60d728ac65f..1ca00f231d19 100644
--- a/keyboards/bpiphany/frosty_flake/config.h
+++ b/keyboards/bpiphany/frosty_flake/config.h
@@ -91,6 +91,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/bpiphany/hid_liber/config.h b/keyboards/bpiphany/hid_liber/config.h
index 1664b9e31469..95e617f56229 100755
--- a/keyboards/bpiphany/hid_liber/config.h
+++ b/keyboards/bpiphany/hid_liber/config.h
@@ -88,5 +88,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bpiphany/kitten_paw/config.h b/keyboards/bpiphany/kitten_paw/config.h
index 7dbf0276994b..b357289e6919 100644
--- a/keyboards/bpiphany/kitten_paw/config.h
+++ b/keyboards/bpiphany/kitten_paw/config.h
@@ -105,5 +105,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bpiphany/sixshooter/config.h b/keyboards/bpiphany/sixshooter/config.h
index 9e7a1803af35..74acfac9b0c2 100644
--- a/keyboards/bpiphany/sixshooter/config.h
+++ b/keyboards/bpiphany/sixshooter/config.h
@@ -59,5 +59,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bpiphany/tiger_lily/config.h b/keyboards/bpiphany/tiger_lily/config.h
index 54a1c2e7f4a0..1831e3e4d404 100644
--- a/keyboards/bpiphany/tiger_lily/config.h
+++ b/keyboards/bpiphany/tiger_lily/config.h
@@ -96,5 +96,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bpiphany/unloved_bastard/config.h b/keyboards/bpiphany/unloved_bastard/config.h
index a6589be4a1df..1f1cf72a1888 100644
--- a/keyboards/bpiphany/unloved_bastard/config.h
+++ b/keyboards/bpiphany/unloved_bastard/config.h
@@ -89,5 +89,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bt66tech/bt66tech60/config.h b/keyboards/bt66tech/bt66tech60/config.h
index 7083b0f70d72..18a7a2d85e0e 100644
--- a/keyboards/bt66tech/bt66tech60/config.h
+++ b/keyboards/bt66tech/bt66tech60/config.h
@@ -91,5 +91,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/bthlabs/geekpad/config.h b/keyboards/bthlabs/geekpad/config.h
index 7994a9cab50c..5dad96a7b4e5 100644
--- a/keyboards/bthlabs/geekpad/config.h
+++ b/keyboards/bthlabs/geekpad/config.h
@@ -114,8 +114,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/buildakb/potato65/config.h b/keyboards/buildakb/potato65/config.h
index 350e1018f76f..4a0a17ace0c4 100644
--- a/keyboards/buildakb/potato65/config.h
+++ b/keyboards/buildakb/potato65/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/buildakb/potato65hs/config.h b/keyboards/buildakb/potato65hs/config.h
index b3b2cfdcd450..cf565d817640 100644
--- a/keyboards/buildakb/potato65hs/config.h
+++ b/keyboards/buildakb/potato65hs/config.h
@@ -47,10 +47,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DI_PIN D5
#ifdef RGB_DI_PIN
# define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/buildakb/potato65s/config.h b/keyboards/buildakb/potato65s/config.h
index 5183327855f5..c1374558c9a3 100644
--- a/keyboards/buildakb/potato65s/config.h
+++ b/keyboards/buildakb/potato65s/config.h
@@ -47,10 +47,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DI_PIN D5
#ifdef RGB_DI_PIN
# define RGBLIGHT_EFFECT_BREATHING
diff --git a/keyboards/caffeinated/serpent65/config.h b/keyboards/caffeinated/serpent65/config.h
index f09a1c2b0810..358e7d0f4c3a 100644
--- a/keyboards/caffeinated/serpent65/config.h
+++ b/keyboards/caffeinated/serpent65/config.h
@@ -105,5 +105,3 @@ B0, which is unconnected on the PCB
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h
index 303bde7e77ac..f02b29c1b9af 100644
--- a/keyboards/canary/canary60rgb/v1/config.h
+++ b/keyboards/canary/canary60rgb/v1/config.h
@@ -65,10 +65,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
@@ -91,4 +87,4 @@
# define DRIVER_ADDR_1 0b1010000
# define DRIVER_COUNT 1
# define DRIVER_LED_TOTAL 63
-#endif
\ No newline at end of file
+#endif
diff --git a/keyboards/cannonkeys/adelie/config.h b/keyboards/cannonkeys/adelie/config.h
index 25ddcf0c91bd..16f308ad2c5d 100644
--- a/keyboards/cannonkeys/adelie/config.h
+++ b/keyboards/cannonkeys/adelie/config.h
@@ -106,10 +106,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/cannonkeys/aella/config.h b/keyboards/cannonkeys/aella/config.h
index b32880d40979..dd8a6376d5e0 100644
--- a/keyboards/cannonkeys/aella/config.h
+++ b/keyboards/cannonkeys/aella/config.h
@@ -59,5 +59,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h
index 83e98c2e2804..09e2382595e5 100644
--- a/keyboards/cannonkeys/an_c/config.h
+++ b/keyboards/cannonkeys/an_c/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h
index 1ba5c0fb0e97..40984c3f6442 100644
--- a/keyboards/cannonkeys/atlas/config.h
+++ b/keyboards/cannonkeys/atlas/config.h
@@ -68,5 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/balance/config.h b/keyboards/cannonkeys/balance/config.h
index 2cdf7d27a740..937de92f5576 100644
--- a/keyboards/cannonkeys/balance/config.h
+++ b/keyboards/cannonkeys/balance/config.h
@@ -67,5 +67,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/chimera65/config.h b/keyboards/cannonkeys/chimera65/config.h
index f7108264af62..1fe204a4ad5e 100644
--- a/keyboards/cannonkeys/chimera65/config.h
+++ b/keyboards/cannonkeys/chimera65/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/db60/config.h b/keyboards/cannonkeys/db60/config.h
index dc2007c17cbe..6dd0d0d7f8a0 100644
--- a/keyboards/cannonkeys/db60/config.h
+++ b/keyboards/cannonkeys/db60/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/devastatingtkl/config.h b/keyboards/cannonkeys/devastatingtkl/config.h
index 0a76a3466fc9..7173a4637814 100644
--- a/keyboards/cannonkeys/devastatingtkl/config.h
+++ b/keyboards/cannonkeys/devastatingtkl/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/hoodrowg/config.h b/keyboards/cannonkeys/hoodrowg/config.h
index 91d89ec81d7f..fc305188a635 100644
--- a/keyboards/cannonkeys/hoodrowg/config.h
+++ b/keyboards/cannonkeys/hoodrowg/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h
index d34bc0003e8f..9b4aac8e15b7 100644
--- a/keyboards/cannonkeys/instant60/config.h
+++ b/keyboards/cannonkeys/instant60/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/instant65/config.h b/keyboards/cannonkeys/instant65/config.h
index dc097494b2eb..464ef0904482 100644
--- a/keyboards/cannonkeys/instant65/config.h
+++ b/keyboards/cannonkeys/instant65/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/iron165/config.h b/keyboards/cannonkeys/iron165/config.h
index 899e73bb9eff..b0b3dd8d7bb8 100644
--- a/keyboards/cannonkeys/iron165/config.h
+++ b/keyboards/cannonkeys/iron165/config.h
@@ -67,5 +67,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/obliterated75/config.h b/keyboards/cannonkeys/obliterated75/config.h
index 7a8a7ff28cbe..aef5a3e3746d 100644
--- a/keyboards/cannonkeys/obliterated75/config.h
+++ b/keyboards/cannonkeys/obliterated75/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/onyx/config.h b/keyboards/cannonkeys/onyx/config.h
index 4fd95bd84adf..2149520a5abc 100644
--- a/keyboards/cannonkeys/onyx/config.h
+++ b/keyboards/cannonkeys/onyx/config.h
@@ -65,5 +65,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h
index 35471484ca49..cc904a27a06e 100644
--- a/keyboards/cannonkeys/ortho48/config.h
+++ b/keyboards/cannonkeys/ortho48/config.h
@@ -70,5 +70,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h
index 36d92de76c0c..4e7db76b6ba9 100644
--- a/keyboards/cannonkeys/ortho60/config.h
+++ b/keyboards/cannonkeys/ortho60/config.h
@@ -70,5 +70,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h
index e05bfba75aad..93fe02f536ba 100644
--- a/keyboards/cannonkeys/ortho75/config.h
+++ b/keyboards/cannonkeys/ortho75/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h
index d89671f557ee..6937f5752afd 100644
--- a/keyboards/cannonkeys/practice60/config.h
+++ b/keyboards/cannonkeys/practice60/config.h
@@ -70,5 +70,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/practice65/config.h b/keyboards/cannonkeys/practice65/config.h
index 69a2f859f1ea..343d4d5272df 100644
--- a/keyboards/cannonkeys/practice65/config.h
+++ b/keyboards/cannonkeys/practice65/config.h
@@ -70,5 +70,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/rekt1800/config.h b/keyboards/cannonkeys/rekt1800/config.h
index e6f7de2e8674..78cd6239536d 100644
--- a/keyboards/cannonkeys/rekt1800/config.h
+++ b/keyboards/cannonkeys/rekt1800/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/sagittarius/config.h b/keyboards/cannonkeys/sagittarius/config.h
index a263ebc71312..dd8563df6b43 100644
--- a/keyboards/cannonkeys/sagittarius/config.h
+++ b/keyboards/cannonkeys/sagittarius/config.h
@@ -80,5 +80,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h
index 53e4c18e5ecb..2a0ac91b2db4 100644
--- a/keyboards/cannonkeys/satisfaction75/config.h
+++ b/keyboards/cannonkeys/satisfaction75/config.h
@@ -107,5 +107,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h
index 3c3166c91938..049574c53227 100644
--- a/keyboards/cannonkeys/savage65/config.h
+++ b/keyboards/cannonkeys/savage65/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h
index cddff4ce7eb3..821c9b7b5d78 100644
--- a/keyboards/cannonkeys/tmov2/config.h
+++ b/keyboards/cannonkeys/tmov2/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/tsukuyomi/config.h b/keyboards/cannonkeys/tsukuyomi/config.h
index d3e955450fbf..51411c524153 100644
--- a/keyboards/cannonkeys/tsukuyomi/config.h
+++ b/keyboards/cannonkeys/tsukuyomi/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cannonkeys/vicious40/config.h b/keyboards/cannonkeys/vicious40/config.h
index 768ee7397d64..c4f8c2623508 100644
--- a/keyboards/cannonkeys/vicious40/config.h
+++ b/keyboards/cannonkeys/vicious40/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/capsunlocked/cu24/config.h b/keyboards/capsunlocked/cu24/config.h
index a2a4e727ff63..cd5e0ccd3968 100644
--- a/keyboards/capsunlocked/cu24/config.h
+++ b/keyboards/capsunlocked/cu24/config.h
@@ -108,5 +108,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/capsunlocked/cu65/config.h b/keyboards/capsunlocked/cu65/config.h
index 8fac6cd06d88..79ff7435bd23 100644
--- a/keyboards/capsunlocked/cu65/config.h
+++ b/keyboards/capsunlocked/cu65/config.h
@@ -99,7 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/capsunlocked/cu75/config.h b/keyboards/capsunlocked/cu75/config.h
index cfcb08cce1b3..8ad8feb24abc 100644
--- a/keyboards/capsunlocked/cu75/config.h
+++ b/keyboards/capsunlocked/cu75/config.h
@@ -90,5 +90,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/centromere/config.h b/keyboards/centromere/config.h
index b4cae20332c1..69af48c30fe8 100644
--- a/keyboards/centromere/config.h
+++ b/keyboards/centromere/config.h
@@ -54,5 +54,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/checkerboards/plexus75/config.h b/keyboards/checkerboards/plexus75/config.h
index 5c123c43f128..f4d84d9d575d 100644
--- a/keyboards/checkerboards/plexus75/config.h
+++ b/keyboards/checkerboards/plexus75/config.h
@@ -60,8 +60,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN D3 // pin the DI on the ws2812 is hooked-up to
diff --git a/keyboards/checkerboards/pursuit40/config.h b/keyboards/checkerboards/pursuit40/config.h
index b73872306a1d..53b1ef90a505 100644
--- a/keyboards/checkerboards/pursuit40/config.h
+++ b/keyboards/checkerboards/pursuit40/config.h
@@ -61,8 +61,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN F0 // pin the DI on the ws2812 is hooked-up to
diff --git a/keyboards/checkerboards/quark/config.h b/keyboards/checkerboards/quark/config.h
index 353569d8ec2d..d0ecf3bde86c 100644
--- a/keyboards/checkerboards/quark/config.h
+++ b/keyboards/checkerboards/quark/config.h
@@ -61,8 +61,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN D0 // pin the DI on the ws2812 is hooked-up to
diff --git a/keyboards/ck60i/config.h b/keyboards/ck60i/config.h
index 113cb5a42163..3e09f1dfb01a 100644
--- a/keyboards/ck60i/config.h
+++ b/keyboards/ck60i/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ckeys/handwire_101/config.h b/keyboards/ckeys/handwire_101/config.h
index 42e26be8692e..6b3f6c5b7f33 100755
--- a/keyboards/ckeys/handwire_101/config.h
+++ b/keyboards/ckeys/handwire_101/config.h
@@ -115,5 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ckeys/nakey/config.h b/keyboards/ckeys/nakey/config.h
index 26ba86e14679..b620ff08c790 100644
--- a/keyboards/ckeys/nakey/config.h
+++ b/keyboards/ckeys/nakey/config.h
@@ -105,5 +105,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ckeys/obelus/config.h b/keyboards/ckeys/obelus/config.h
index 00e224c206b4..1759f6c5fc0b 100644
--- a/keyboards/ckeys/obelus/config.h
+++ b/keyboards/ckeys/obelus/config.h
@@ -100,8 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#ifdef AUDIO_ENABLE
#define AUDIO_VOICES
diff --git a/keyboards/ckeys/thedora/config.h b/keyboards/ckeys/thedora/config.h
index bfc314173176..8e96c8ed06c1 100755
--- a/keyboards/ckeys/thedora/config.h
+++ b/keyboards/ckeys/thedora/config.h
@@ -115,5 +115,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ckeys/washington/config.h b/keyboards/ckeys/washington/config.h
index 0b7da2782e87..2d5a8ce3ad03 100644
--- a/keyboards/ckeys/washington/config.h
+++ b/keyboards/ckeys/washington/config.h
@@ -138,10 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/clueboard/66_hotswap/config.h b/keyboards/clueboard/66_hotswap/config.h
index 9b1dba3dc33e..4e3af45222f8 100644
--- a/keyboards/clueboard/66_hotswap/config.h
+++ b/keyboards/clueboard/66_hotswap/config.h
@@ -23,4 +23,3 @@ along with this program. If not, see .
* These options are also useful to firmware size reduction.
*/
#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h
index 1e124745bd97..b1bf6b35433c 100644
--- a/keyboards/clueboard/66_hotswap/gen1/config.h
+++ b/keyboards/clueboard/66_hotswap/gen1/config.h
@@ -62,8 +62,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Backlight configuration
*/
diff --git a/keyboards/coarse/cordillera/config.h b/keyboards/coarse/cordillera/config.h
index 1d8c9e294c04..7bc2dca560b6 100644
--- a/keyboards/coarse/cordillera/config.h
+++ b/keyboards/coarse/cordillera/config.h
@@ -71,5 +71,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/contender/config.h b/keyboards/contender/config.h
index 0b5e5e9342b3..9977a5033e45 100644
--- a/keyboards/contender/config.h
+++ b/keyboards/contender/config.h
@@ -139,10 +139,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/converter/a1200/miss1200/config.h b/keyboards/converter/a1200/miss1200/config.h
index 5a6c679651a7..7347f1948c66 100644
--- a/keyboards/converter/a1200/miss1200/config.h
+++ b/keyboards/converter/a1200/miss1200/config.h
@@ -58,5 +58,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/converter/a1200/teensy2pp/config.h b/keyboards/converter/a1200/teensy2pp/config.h
index 19e7ca9b95a9..84a81c297cd8 100644
--- a/keyboards/converter/a1200/teensy2pp/config.h
+++ b/keyboards/converter/a1200/teensy2pp/config.h
@@ -57,5 +57,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/converter/modelm101/config.h b/keyboards/converter/modelm101/config.h
index 639b325ff38c..33c6303036ea 100644
--- a/keyboards/converter/modelm101/config.h
+++ b/keyboards/converter/modelm101/config.h
@@ -68,5 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/converter/modelm_ssk/config.h b/keyboards/converter/modelm_ssk/config.h
index 74d549ba492a..ff7aa1200025 100644
--- a/keyboards/converter/modelm_ssk/config.h
+++ b/keyboards/converter/modelm_ssk/config.h
@@ -72,5 +72,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/converter/siemens_tastatur/config.h b/keyboards/converter/siemens_tastatur/config.h
index cd54ed3d83bb..86fe59fbd514 100644
--- a/keyboards/converter/siemens_tastatur/config.h
+++ b/keyboards/converter/siemens_tastatur/config.h
@@ -62,5 +62,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/cool836a/config.h b/keyboards/cool836a/config.h
index 3ac036786fd7..4cf356d8b375 100644
--- a/keyboards/cool836a/config.h
+++ b/keyboards/cool836a/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/copenhagen_click/click_pad_v1/config.h b/keyboards/copenhagen_click/click_pad_v1/config.h
index 08a9777b517d..7fc16c54fe45 100755
--- a/keyboards/copenhagen_click/click_pad_v1/config.h
+++ b/keyboards/copenhagen_click/click_pad_v1/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/coseyfannitutti/discipad/config.h b/keyboards/coseyfannitutti/discipad/config.h
index 33ce2576f811..69e2e1561cfa 100644
--- a/keyboards/coseyfannitutti/discipad/config.h
+++ b/keyboards/coseyfannitutti/discipad/config.h
@@ -135,8 +135,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/coseyfannitutti/discipline/config.h b/keyboards/coseyfannitutti/discipline/config.h
index 70bc4536f315..570fff8752c3 100644
--- a/keyboards/coseyfannitutti/discipline/config.h
+++ b/keyboards/coseyfannitutti/discipline/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/coseyfannitutti/mullet/config.h b/keyboards/coseyfannitutti/mullet/config.h
index b186aa82d1af..d01be9744c6b 100644
--- a/keyboards/coseyfannitutti/mullet/config.h
+++ b/keyboards/coseyfannitutti/mullet/config.h
@@ -115,6 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/coseyfannitutti/mulletpad/config.h b/keyboards/coseyfannitutti/mulletpad/config.h
index b2a930357177..e6d68469bfe2 100644
--- a/keyboards/coseyfannitutti/mulletpad/config.h
+++ b/keyboards/coseyfannitutti/mulletpad/config.h
@@ -115,6 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/coseyfannitutti/mysterium/config.h b/keyboards/coseyfannitutti/mysterium/config.h
index 0b2df0a051be..4fa4b15708e0 100644
--- a/keyboards/coseyfannitutti/mysterium/config.h
+++ b/keyboards/coseyfannitutti/mysterium/config.h
@@ -131,8 +131,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/coseyfannitutti/romeo/config.h b/keyboards/coseyfannitutti/romeo/config.h
index 93cda95d2099..811787df79a9 100644
--- a/keyboards/coseyfannitutti/romeo/config.h
+++ b/keyboards/coseyfannitutti/romeo/config.h
@@ -134,8 +134,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/craftwalk/config.h b/keyboards/craftwalk/config.h
index 484a2e13aa8d..f87c61cdb1dd 100644
--- a/keyboards/craftwalk/config.h
+++ b/keyboards/craftwalk/config.h
@@ -137,9 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/crazy_keyboard_68/config.h b/keyboards/crazy_keyboard_68/config.h
index 53759a716a8d..ea2bc568bcca 100644
--- a/keyboards/crazy_keyboard_68/config.h
+++ b/keyboards/crazy_keyboard_68/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/crkbd/config.h b/keyboards/crkbd/config.h
index f354efbb47d7..02732819f9b4 100644
--- a/keyboards/crkbd/config.h
+++ b/keyboards/crkbd/config.h
@@ -68,9 +68,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-#define USE_SERIAL
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+#define USE_SERIAL
diff --git a/keyboards/cutie_club/wraith/config.h b/keyboards/cutie_club/wraith/config.h
index 685aed81d674..fa7467eb4a82 100644
--- a/keyboards/cutie_club/wraith/config.h
+++ b/keyboards/cutie_club/wraith/config.h
@@ -134,8 +134,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/dailycraft/bat43/config.h b/keyboards/dailycraft/bat43/config.h
index 19b485fd1694..4c42f6a06d0f 100644
--- a/keyboards/dailycraft/bat43/config.h
+++ b/keyboards/dailycraft/bat43/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dailycraft/claw44/config.h b/keyboards/dailycraft/claw44/config.h
index 0bd74ff83374..cfb6bf4ffccd 100644
--- a/keyboards/dailycraft/claw44/config.h
+++ b/keyboards/dailycraft/claw44/config.h
@@ -19,6 +19,3 @@ along with this program. If not, see .
#pragma once
#include "config_common.h"
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/dailycraft/claw44/rev1/config.h b/keyboards/dailycraft/claw44/rev1/config.h
index 8116b605cd22..bcfcbababa9b 100644
--- a/keyboards/dailycraft/claw44/rev1/config.h
+++ b/keyboards/dailycraft/claw44/rev1/config.h
@@ -70,5 +70,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/dailycraft/owl8/config.h b/keyboards/dailycraft/owl8/config.h
index d28fd9c927db..b0634c256690 100644
--- a/keyboards/dailycraft/owl8/config.h
+++ b/keyboards/dailycraft/owl8/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dailycraft/stickey4/config.h b/keyboards/dailycraft/stickey4/config.h
index 85e49bca96d9..d9bd0f330189 100644
--- a/keyboards/dailycraft/stickey4/config.h
+++ b/keyboards/dailycraft/stickey4/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dailycraft/wings42/rev1/config.h b/keyboards/dailycraft/wings42/rev1/config.h
index cfb427492153..0d53ff763471 100644
--- a/keyboards/dailycraft/wings42/rev1/config.h
+++ b/keyboards/dailycraft/wings42/rev1/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dailycraft/wings42/rev1_extkeys/config.h b/keyboards/dailycraft/wings42/rev1_extkeys/config.h
index f0f04eca59e2..b2fe3210b63a 100644
--- a/keyboards/dailycraft/wings42/rev1_extkeys/config.h
+++ b/keyboards/dailycraft/wings42/rev1_extkeys/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dailycraft/wings42/rev2/config.h b/keyboards/dailycraft/wings42/rev2/config.h
index 836833718c97..f1e7716bb426 100644
--- a/keyboards/dailycraft/wings42/rev2/config.h
+++ b/keyboards/dailycraft/wings42/rev2/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dc01/left/config.h b/keyboards/dc01/left/config.h
index 43883975c4f2..d5b296259036 100644
--- a/keyboards/dc01/left/config.h
+++ b/keyboards/dc01/left/config.h
@@ -120,5 +120,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/delikeeb/flatbread60/config.h b/keyboards/delikeeb/flatbread60/config.h
index 5d63a8f5fcf2..3de88a16f625 100644
--- a/keyboards/delikeeb/flatbread60/config.h
+++ b/keyboards/delikeeb/flatbread60/config.h
@@ -116,7 +116,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/delikeeb/vaguettelite/config.h b/keyboards/delikeeb/vaguettelite/config.h
index ef1aec49ef4a..5ad1942437f2 100644
--- a/keyboards/delikeeb/vaguettelite/config.h
+++ b/keyboards/delikeeb/vaguettelite/config.h
@@ -110,10 +110,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/delikeeb/vanana/rev1/config.h b/keyboards/delikeeb/vanana/rev1/config.h
index d584e32a39a0..8213404eb35c 100644
--- a/keyboards/delikeeb/vanana/rev1/config.h
+++ b/keyboards/delikeeb/vanana/rev1/config.h
@@ -91,10 +91,6 @@ along with this program. If not, see .
*/
#define GRAVE_ESC_CTRL_OVERRIDE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/delikeeb/vanana/rev2/config.h b/keyboards/delikeeb/vanana/rev2/config.h
index 8893bb09f563..8397424aa952 100644
--- a/keyboards/delikeeb/vanana/rev2/config.h
+++ b/keyboards/delikeeb/vanana/rev2/config.h
@@ -91,10 +91,6 @@ along with this program. If not, see .
*/
#define GRAVE_ESC_CTRL_OVERRIDE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/delikeeb/vaneela/config.h b/keyboards/delikeeb/vaneela/config.h
index 4feaf44a7241..936c8eb5ecce 100644
--- a/keyboards/delikeeb/vaneela/config.h
+++ b/keyboards/delikeeb/vaneela/config.h
@@ -101,10 +101,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/delikeeb/vaneelaex/config.h b/keyboards/delikeeb/vaneelaex/config.h
index 4eb6303838fb..27d242017612 100644
--- a/keyboards/delikeeb/vaneelaex/config.h
+++ b/keyboards/delikeeb/vaneelaex/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/delikeeb/waaffle/rev3/config.h b/keyboards/delikeeb/waaffle/rev3/config.h
index 0c4327623d91..12ff241f4ca0 100644
--- a/keyboards/delikeeb/waaffle/rev3/config.h
+++ b/keyboards/delikeeb/waaffle/rev3/config.h
@@ -128,10 +128,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 6
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/deltapad/config.h b/keyboards/deltapad/config.h
index a4a78f244afe..186a11ee2776 100644
--- a/keyboards/deltapad/config.h
+++ b/keyboards/deltapad/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/deltasplit75/v2/config.h b/keyboards/deltasplit75/v2/config.h
index 397683ce451d..ffc2724e5e3f 100644
--- a/keyboards/deltasplit75/v2/config.h
+++ b/keyboards/deltasplit75/v2/config.h
@@ -77,5 +77,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/demiurge/config.h b/keyboards/demiurge/config.h
index abe6c193c4dd..b7e3c70b3cd2 100755
--- a/keyboards/demiurge/config.h
+++ b/keyboards/demiurge/config.h
@@ -73,7 +73,3 @@ along with this program. If not, see .
/* disable print */
//#define NO_PRINT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/dichotomy/config.h b/keyboards/dichotomy/config.h
index 40e7f18e6f79..c4bb0309006d 100644
--- a/keyboards/dichotomy/config.h
+++ b/keyboards/dichotomy/config.h
@@ -54,5 +54,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/dk60/config.h b/keyboards/dk60/config.h
index bec665419b86..eef0ddc47419 100644
--- a/keyboards/dk60/config.h
+++ b/keyboards/dk60/config.h
@@ -132,10 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dm9records/ergoinu/config.h b/keyboards/dm9records/ergoinu/config.h
index 89ea9e7903a4..e4fb80ad2ecd 100644
--- a/keyboards/dm9records/ergoinu/config.h
+++ b/keyboards/dm9records/ergoinu/config.h
@@ -106,5 +106,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/dm9records/lain/config.h b/keyboards/dm9records/lain/config.h
index 8bccf4bbb57b..adc0d165c328 100644
--- a/keyboards/dm9records/lain/config.h
+++ b/keyboards/dm9records/lain/config.h
@@ -40,8 +40,4 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
diff --git a/keyboards/dm9records/plaid/config.h b/keyboards/dm9records/plaid/config.h
index 86ff5be35654..ab6b0fbabc0a 100644
--- a/keyboards/dm9records/plaid/config.h
+++ b/keyboards/dm9records/plaid/config.h
@@ -135,8 +135,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/dm9records/tartan/config.h b/keyboards/dm9records/tartan/config.h
index 7ad97ea453a9..4faec5372166 100644
--- a/keyboards/dm9records/tartan/config.h
+++ b/keyboards/dm9records/tartan/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/donutcables/scrabblepad/config.h b/keyboards/donutcables/scrabblepad/config.h
index 5543c6133519..2c6c704bde57 100644
--- a/keyboards/donutcables/scrabblepad/config.h
+++ b/keyboards/donutcables/scrabblepad/config.h
@@ -143,8 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/doppelganger/config.h b/keyboards/doppelganger/config.h
index d063cee5bc31..39e29e7c1551 100644
--- a/keyboards/doppelganger/config.h
+++ b/keyboards/doppelganger/config.h
@@ -144,8 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/draytronics/daisy/config.h b/keyboards/draytronics/daisy/config.h
index b524f890287e..fa04b0d41c13 100644
--- a/keyboards/draytronics/daisy/config.h
+++ b/keyboards/draytronics/daisy/config.h
@@ -94,9 +94,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
//Underglow
#define RGB_DI_PIN D4 // Underglow led pin
diff --git a/keyboards/draytronics/scarlet/config.h b/keyboards/draytronics/scarlet/config.h
index f7b50dee7597..9c4db29ac6dc 100644
--- a/keyboards/draytronics/scarlet/config.h
+++ b/keyboards/draytronics/scarlet/config.h
@@ -91,6 +91,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/drewkeys/iskar/config.h b/keyboards/drewkeys/iskar/config.h
index e20369fde03f..956456201ff3 100644
--- a/keyboards/drewkeys/iskar/config.h
+++ b/keyboards/drewkeys/iskar/config.h
@@ -50,7 +50,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/dtisaac/dosa40rgb/config.h b/keyboards/dtisaac/dosa40rgb/config.h
index c5c13bd2702b..8d61f61128ab 100644
--- a/keyboards/dtisaac/dosa40rgb/config.h
+++ b/keyboards/dtisaac/dosa40rgb/config.h
@@ -107,7 +107,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
//#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/dtisaac/dtisaac01/config.h b/keyboards/dtisaac/dtisaac01/config.h
index f417d644998b..eb1ff71536bc 100644
--- a/keyboards/dtisaac/dtisaac01/config.h
+++ b/keyboards/dtisaac/dtisaac01/config.h
@@ -81,15 +81,6 @@ along with this program. If not, see .
*/
//#define FORCE_NKRO
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable these deprecated features by default */
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/duck/jetfire/config.h b/keyboards/duck/jetfire/config.h
index 3b6c7d89fdb2..0512d4a1f406 100644
--- a/keyboards/duck/jetfire/config.h
+++ b/keyboards/duck/jetfire/config.h
@@ -92,5 +92,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h
index 0d464b5d6b7b..7bdad00144a4 100644
--- a/keyboards/dztech/dz60rgb/v1/config.h
+++ b/keyboards/dztech/dz60rgb/v1/config.h
@@ -31,10 +31,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h
index 3db8ea40f510..9426a7be997f 100644
--- a/keyboards/dztech/dz60rgb/v2/config.h
+++ b/keyboards/dztech/dz60rgb/v2/config.h
@@ -31,10 +31,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h
index d785d1e539ab..7e5dfd6703f3 100644
--- a/keyboards/dztech/dz60rgb/v2_1/config.h
+++ b/keyboards/dztech/dz60rgb/v2_1/config.h
@@ -47,10 +47,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h
index 176bb03a1363..ccfe91b66bd6 100644
--- a/keyboards/dztech/dz60rgb_ansi/v1/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h
@@ -31,10 +31,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h
index 5ff2cd6a8c42..865ac2ab213d 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h
@@ -31,10 +31,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h
index 84aa7802c3e7..64e2a40bdadf 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h
@@ -47,10 +47,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h
index b8c70ff4fb4a..9af78167ad92 100644
--- a/keyboards/dztech/dz60rgb_wkl/v1/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h
@@ -31,10 +31,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h
index 5d715a1e0d9a..140d74fee04f 100644
--- a/keyboards/dztech/dz60rgb_wkl/v2/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h
@@ -31,10 +31,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h
index 960285b97649..3ab221391e4d 100644
--- a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h
@@ -47,10 +47,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/dztech/dz64rgb/config.h b/keyboards/dztech/dz64rgb/config.h
index 224c2672cc12..86848077fa4e 100644
--- a/keyboards/dztech/dz64rgb/config.h
+++ b/keyboards/dztech/dz64rgb/config.h
@@ -32,8 +32,6 @@
#define DEBOUNCE 5
#define USB_SUSPEND_WAKEUP_DELAY 5000
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_KEYPRESSES
@@ -69,4 +67,4 @@
#define DRIVER_COUNT 1
#define DRIVER_LED_TOTAL 64
#endif
-#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
\ No newline at end of file
+#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h
index 5fe0ba3eba48..d281eaa51ec1 100644
--- a/keyboards/dztech/dz65rgb/v1/config.h
+++ b/keyboards/dztech/dz65rgb/v1/config.h
@@ -42,10 +42,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 4
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h
index b8677e44364a..5267f42aa263 100644
--- a/keyboards/dztech/dz65rgb/v2/config.h
+++ b/keyboards/dztech/dz65rgb/v2/config.h
@@ -42,10 +42,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 4
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h
index ba7863f42a81..6c21fa22c214 100755
--- a/keyboards/dztech/dz65rgb/v3/config.h
+++ b/keyboards/dztech/dz65rgb/v3/config.h
@@ -37,9 +37,7 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/e88/config.h b/keyboards/e88/config.h
index 11b040c92d33..e83dfb9b0680 100644
--- a/keyboards/e88/config.h
+++ b/keyboards/e88/config.h
@@ -100,9 +100,5 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define QMK_ESC_OUTPUT F0 // usually COL
#define QMK_ESC_INPUT B7 // usually ROW
diff --git a/keyboards/ealdin/quadrant/config.h b/keyboards/ealdin/quadrant/config.h
index 733b59c5a753..b37af15ea6c8 100644
--- a/keyboards/ealdin/quadrant/config.h
+++ b/keyboards/ealdin/quadrant/config.h
@@ -99,5 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/earth_rover/config.h b/keyboards/earth_rover/config.h
index 6e958f13886d..2e7ceda4e1ca 100644
--- a/keyboards/earth_rover/config.h
+++ b/keyboards/earth_rover/config.h
@@ -105,10 +105,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/eco/config.h b/keyboards/eco/config.h
index e5258e3a0bb8..5c4466985c50 100644
--- a/keyboards/eco/config.h
+++ b/keyboards/eco/config.h
@@ -58,8 +58,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#ifdef SUBPROJECT_rev1
#include "rev1/config.h"
diff --git a/keyboards/edi/hardlight/mk2/config.h b/keyboards/edi/hardlight/mk2/config.h
index ab4b00682765..8580aabec522 100644
--- a/keyboards/edi/hardlight/mk2/config.h
+++ b/keyboards/edi/hardlight/mk2/config.h
@@ -77,5 +77,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/edi/standaside/config.h b/keyboards/edi/standaside/config.h
index 797a463a15ee..c72c915d82a7 100644
--- a/keyboards/edi/standaside/config.h
+++ b/keyboards/edi/standaside/config.h
@@ -99,6 +99,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/eek/config.h b/keyboards/eek/config.h
index d8a949269eba..919c112722cf 100644
--- a/keyboards/eek/config.h
+++ b/keyboards/eek/config.h
@@ -125,9 +125,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/efreet/config.h b/keyboards/efreet/config.h
index ed5bb730a78a..90e76d9c5acf 100644
--- a/keyboards/efreet/config.h
+++ b/keyboards/efreet/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/emajesty/eiri/config.h b/keyboards/emajesty/eiri/config.h
index ea7afa48227a..99b606770d42 100644
--- a/keyboards/emajesty/eiri/config.h
+++ b/keyboards/emajesty/eiri/config.h
@@ -87,10 +87,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/eniigmakeyboards/ek65/config.h b/keyboards/eniigmakeyboards/ek65/config.h
index bd8f59ef1b1a..7a272c1491e5 100644
--- a/keyboards/eniigmakeyboards/ek65/config.h
+++ b/keyboards/eniigmakeyboards/ek65/config.h
@@ -137,11 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/eniigmakeyboards/ek87/config.h b/keyboards/eniigmakeyboards/ek87/config.h
index fdde69cef316..838f46f8441f 100644
--- a/keyboards/eniigmakeyboards/ek87/config.h
+++ b/keyboards/eniigmakeyboards/ek87/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ep/40/config.h b/keyboards/ep/40/config.h
index 40ed06ad2428..780d64fd6996 100644
--- a/keyboards/ep/40/config.h
+++ b/keyboards/ep/40/config.h
@@ -105,5 +105,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ep/96/config.h b/keyboards/ep/96/config.h
index 83ddb873de1a..bcb10748671e 100644
--- a/keyboards/ep/96/config.h
+++ b/keyboards/ep/96/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ep/comsn/mollydooker/config.h b/keyboards/ep/comsn/mollydooker/config.h
index ec4f47f87075..def201cd8b0d 100644
--- a/keyboards/ep/comsn/mollydooker/config.h
+++ b/keyboards/ep/comsn/mollydooker/config.h
@@ -110,5 +110,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h
index 109a80d2c5d5..f25ff162cde2 100644
--- a/keyboards/ergodox_ez/config.h
+++ b/keyboards/ergodox_ez/config.h
@@ -205,6 +205,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
//#define DEBUG_MATRIX_SCAN_RATE
diff --git a/keyboards/ergosaurus/config.h b/keyboards/ergosaurus/config.h
index e4981e0013f9..41f9a09311ee 100644
--- a/keyboards/ergosaurus/config.h
+++ b/keyboards/ergosaurus/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ergoslab/rev1/config.h b/keyboards/ergoslab/rev1/config.h
index c9382ea765e5..b754a7810ca3 100644
--- a/keyboards/ergoslab/rev1/config.h
+++ b/keyboards/ergoslab/rev1/config.h
@@ -66,5 +66,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ergotravel/rev1/config.h b/keyboards/ergotravel/rev1/config.h
index dc08ceab8e28..096a85d370bd 100644
--- a/keyboards/ergotravel/rev1/config.h
+++ b/keyboards/ergotravel/rev1/config.h
@@ -76,5 +76,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ericrlau/numdiscipline/rev1/config.h b/keyboards/ericrlau/numdiscipline/rev1/config.h
index 82035518a603..72abf556d47f 100644
--- a/keyboards/ericrlau/numdiscipline/rev1/config.h
+++ b/keyboards/ericrlau/numdiscipline/rev1/config.h
@@ -135,8 +135,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/esca/getawayvan/config.h b/keyboards/esca/getawayvan/config.h
index 3b718c583596..34498cc3fb03 100644
--- a/keyboards/esca/getawayvan/config.h
+++ b/keyboards/esca/getawayvan/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/esca/getawayvan_f042/config.h b/keyboards/esca/getawayvan_f042/config.h
index 8921e9db4d16..6812d4e52b4c 100644
--- a/keyboards/esca/getawayvan_f042/config.h
+++ b/keyboards/esca/getawayvan_f042/config.h
@@ -72,5 +72,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/eternal_keypad/config.h b/keyboards/eternal_keypad/config.h
index fbcdb45021b7..5b5ad02f4416 100644
--- a/keyboards/eternal_keypad/config.h
+++ b/keyboards/eternal_keypad/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
diff --git a/keyboards/evil80/config.h b/keyboards/evil80/config.h
index 4036b473a077..6876c0e086fd 100644
--- a/keyboards/evil80/config.h
+++ b/keyboards/evil80/config.h
@@ -55,5 +55,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/evolv/config.h b/keyboards/evolv/config.h
index 59223cd2c9dd..3a3ff3be35f4 100644
--- a/keyboards/evolv/config.h
+++ b/keyboards/evolv/config.h
@@ -77,5 +77,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h
index 383aa23789fb..25c419b4cdd2 100644
--- a/keyboards/evyd13/atom47/rev5/config.h
+++ b/keyboards/evyd13/atom47/rev5/config.h
@@ -138,10 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/evyd13/eon40/config.h b/keyboards/evyd13/eon40/config.h
index 8f39d0532ed1..14cbe4209976 100644
--- a/keyboards/evyd13/eon40/config.h
+++ b/keyboards/evyd13/eon40/config.h
@@ -138,8 +138,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/eon65/config.h b/keyboards/evyd13/eon65/config.h
index 7d4e80d5bbe2..08922a2d4c0f 100644
--- a/keyboards/evyd13/eon65/config.h
+++ b/keyboards/evyd13/eon65/config.h
@@ -135,8 +135,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/eon75/config.h b/keyboards/evyd13/eon75/config.h
index da2775fd40ca..203cfe8a7d68 100644
--- a/keyboards/evyd13/eon75/config.h
+++ b/keyboards/evyd13/eon75/config.h
@@ -140,8 +140,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/eon87/config.h b/keyboards/evyd13/eon87/config.h
index 18a21bac27d9..bfa593db51f2 100644
--- a/keyboards/evyd13/eon87/config.h
+++ b/keyboards/evyd13/eon87/config.h
@@ -135,8 +135,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/eon95/config.h b/keyboards/evyd13/eon95/config.h
index 48de3f3782d8..6a6b329c2984 100644
--- a/keyboards/evyd13/eon95/config.h
+++ b/keyboards/evyd13/eon95/config.h
@@ -140,8 +140,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/gh80_1800/config.h b/keyboards/evyd13/gh80_1800/config.h
index 26ad8a8b1375..d2fa370c0d7a 100644
--- a/keyboards/evyd13/gh80_1800/config.h
+++ b/keyboards/evyd13/gh80_1800/config.h
@@ -140,8 +140,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/gh80_3700/config.h b/keyboards/evyd13/gh80_3700/config.h
index 200f179cf72b..d05ca8795861 100644
--- a/keyboards/evyd13/gh80_3700/config.h
+++ b/keyboards/evyd13/gh80_3700/config.h
@@ -135,8 +135,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// Define rotary encoder
#define ENCODERS_PAD_A { F1 }
diff --git a/keyboards/evyd13/gud70/config.h b/keyboards/evyd13/gud70/config.h
index 914a87f4f538..395d1c303e5a 100644
--- a/keyboards/evyd13/gud70/config.h
+++ b/keyboards/evyd13/gud70/config.h
@@ -141,10 +141,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/evyd13/minitomic/config.h b/keyboards/evyd13/minitomic/config.h
index ad31fd0aec02..01af62d69dc0 100644
--- a/keyboards/evyd13/minitomic/config.h
+++ b/keyboards/evyd13/minitomic/config.h
@@ -138,8 +138,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/mx5160/config.h b/keyboards/evyd13/mx5160/config.h
index 5cce240a87c5..3d25e1704fc3 100644
--- a/keyboards/evyd13/mx5160/config.h
+++ b/keyboards/evyd13/mx5160/config.h
@@ -144,8 +144,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/nt660/config.h b/keyboards/evyd13/nt660/config.h
index 225f2ccf2d4f..f633a4206e75 100644
--- a/keyboards/evyd13/nt660/config.h
+++ b/keyboards/evyd13/nt660/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/evyd13/nt750/config.h b/keyboards/evyd13/nt750/config.h
index 35fc00067143..076bb344a50d 100644
--- a/keyboards/evyd13/nt750/config.h
+++ b/keyboards/evyd13/nt750/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/evyd13/nt980/config.h b/keyboards/evyd13/nt980/config.h
index 1509dde06186..e483ab46c968 100644
--- a/keyboards/evyd13/nt980/config.h
+++ b/keyboards/evyd13/nt980/config.h
@@ -142,10 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/evyd13/omrontkl/config.h b/keyboards/evyd13/omrontkl/config.h
index d61b338e9752..40f83848311d 100644
--- a/keyboards/evyd13/omrontkl/config.h
+++ b/keyboards/evyd13/omrontkl/config.h
@@ -135,8 +135,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/pockettype/config.h b/keyboards/evyd13/pockettype/config.h
index fa45630c1aec..b62c3549f81e 100644
--- a/keyboards/evyd13/pockettype/config.h
+++ b/keyboards/evyd13/pockettype/config.h
@@ -135,8 +135,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/quackfire/config.h b/keyboards/evyd13/quackfire/config.h
index 151219a016f5..4df2abd5a854 100644
--- a/keyboards/evyd13/quackfire/config.h
+++ b/keyboards/evyd13/quackfire/config.h
@@ -141,8 +141,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 6
diff --git a/keyboards/evyd13/solheim68/config.h b/keyboards/evyd13/solheim68/config.h
index d61e095f1de7..ef449ab7d40e 100644
--- a/keyboards/evyd13/solheim68/config.h
+++ b/keyboards/evyd13/solheim68/config.h
@@ -135,8 +135,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/wasdat/config.h b/keyboards/evyd13/wasdat/config.h
index 38f9fe4bda08..e151496aed34 100644
--- a/keyboards/evyd13/wasdat/config.h
+++ b/keyboards/evyd13/wasdat/config.h
@@ -142,8 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/evyd13/wasdat_code/config.h b/keyboards/evyd13/wasdat_code/config.h
index 6c39403e527f..ae009c1c292a 100644
--- a/keyboards/evyd13/wasdat_code/config.h
+++ b/keyboards/evyd13/wasdat_code/config.h
@@ -148,8 +148,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 2
diff --git a/keyboards/exclusive/e7v1se/config.h b/keyboards/exclusive/e7v1se/config.h
index 1bb0eb3acf14..cce08878ebf8 100644
--- a/keyboards/exclusive/e7v1se/config.h
+++ b/keyboards/exclusive/e7v1se/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/exclusive/e85/config.h b/keyboards/exclusive/e85/config.h
index cc4fcd97d0d2..2683403204d9 100644
--- a/keyboards/exclusive/e85/config.h
+++ b/keyboards/exclusive/e85/config.h
@@ -121,10 +121,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/exent/config.h b/keyboards/exent/config.h
index c6f4452708df..e9dc026867c0 100644
--- a/keyboards/exent/config.h
+++ b/keyboards/exent/config.h
@@ -76,10 +76,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/eyeohdesigns/babyv/config.h b/keyboards/eyeohdesigns/babyv/config.h
index c49a039df2a4..f90d68e2e5e6 100644
--- a/keyboards/eyeohdesigns/babyv/config.h
+++ b/keyboards/eyeohdesigns/babyv/config.h
@@ -54,7 +54,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fc660c/config.h b/keyboards/fc660c/config.h
index 460881cb174c..7df5811f42da 100644
--- a/keyboards/fc660c/config.h
+++ b/keyboards/fc660c/config.h
@@ -70,8 +70,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// higher value means deeper actuation point, less sensitive
// be careful and only make small adjustments (steps of 1 or 2).
diff --git a/keyboards/fc980c/config.h b/keyboards/fc980c/config.h
index b0bffef7607c..250e7336a9a2 100644
--- a/keyboards/fc980c/config.h
+++ b/keyboards/fc980c/config.h
@@ -77,8 +77,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// higher value means deeper actuation point, less sensitive
// be careful and only make small adjustments (steps of 1 or 2).
diff --git a/keyboards/ffkeebs/puca/config.h b/keyboards/ffkeebs/puca/config.h
index 29bb9a782b91..e8e57c72e8b1 100644
--- a/keyboards/ffkeebs/puca/config.h
+++ b/keyboards/ffkeebs/puca/config.h
@@ -62,8 +62,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/fjlabs/7vhotswap/config.h b/keyboards/fjlabs/7vhotswap/config.h
index a34bf8f5fa5f..66ee195a5823 100644
--- a/keyboards/fjlabs/7vhotswap/config.h
+++ b/keyboards/fjlabs/7vhotswap/config.h
@@ -114,5 +114,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/ad65/config.h b/keyboards/fjlabs/ad65/config.h
index 8f9d672d839f..3bbf7a01d135 100644
--- a/keyboards/fjlabs/ad65/config.h
+++ b/keyboards/fjlabs/ad65/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/bks65/config.h b/keyboards/fjlabs/bks65/config.h
index 37cb2b687b97..b1deccd4e1d7 100644
--- a/keyboards/fjlabs/bks65/config.h
+++ b/keyboards/fjlabs/bks65/config.h
@@ -116,5 +116,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/bks65solder/config.h b/keyboards/fjlabs/bks65solder/config.h
index 6b3839c8c89c..5dff84a0c10e 100644
--- a/keyboards/fjlabs/bks65solder/config.h
+++ b/keyboards/fjlabs/bks65solder/config.h
@@ -113,5 +113,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/bolsa65/config.h b/keyboards/fjlabs/bolsa65/config.h
index c53d2ab65627..bf389ee445ba 100644
--- a/keyboards/fjlabs/bolsa65/config.h
+++ b/keyboards/fjlabs/bolsa65/config.h
@@ -113,5 +113,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/kf87/config.h b/keyboards/fjlabs/kf87/config.h
index 38bd7566bb6b..b133e375bb1c 100644
--- a/keyboards/fjlabs/kf87/config.h
+++ b/keyboards/fjlabs/kf87/config.h
@@ -118,5 +118,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/kyuu/config.h b/keyboards/fjlabs/kyuu/config.h
index b73d6c8f852e..75f9643a79e6 100644
--- a/keyboards/fjlabs/kyuu/config.h
+++ b/keyboards/fjlabs/kyuu/config.h
@@ -116,5 +116,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/ldk65/config.h b/keyboards/fjlabs/ldk65/config.h
index 1c8eaff2ec0c..15626c070081 100644
--- a/keyboards/fjlabs/ldk65/config.h
+++ b/keyboards/fjlabs/ldk65/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/midway60/config.h b/keyboards/fjlabs/midway60/config.h
index d5a39c89c01d..f70a932a51f1 100644
--- a/keyboards/fjlabs/midway60/config.h
+++ b/keyboards/fjlabs/midway60/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/mk61rgbansi/config.h b/keyboards/fjlabs/mk61rgbansi/config.h
index 4d459b6f8896..fdc857134474 100644
--- a/keyboards/fjlabs/mk61rgbansi/config.h
+++ b/keyboards/fjlabs/mk61rgbansi/config.h
@@ -117,5 +117,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/polaris/config.h b/keyboards/fjlabs/polaris/config.h
index d622778ce0e5..6efae34205dc 100644
--- a/keyboards/fjlabs/polaris/config.h
+++ b/keyboards/fjlabs/polaris/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/ready100/config.h b/keyboards/fjlabs/ready100/config.h
index a32f9d94acc1..31adbd7f4be8 100644
--- a/keyboards/fjlabs/ready100/config.h
+++ b/keyboards/fjlabs/ready100/config.h
@@ -115,5 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/tf60ansi/config.h b/keyboards/fjlabs/tf60ansi/config.h
index eede9b7544d1..1b19a0e2eccc 100644
--- a/keyboards/fjlabs/tf60ansi/config.h
+++ b/keyboards/fjlabs/tf60ansi/config.h
@@ -117,5 +117,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/tf60v2/config.h b/keyboards/fjlabs/tf60v2/config.h
index 11cb92a33fbc..0c1a06946461 100644
--- a/keyboards/fjlabs/tf60v2/config.h
+++ b/keyboards/fjlabs/tf60v2/config.h
@@ -117,5 +117,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/fjlabs/tf65rgbv2/config.h b/keyboards/fjlabs/tf65rgbv2/config.h
index 65e1932f436c..111b2c892860 100644
--- a/keyboards/fjlabs/tf65rgbv2/config.h
+++ b/keyboards/fjlabs/tf65rgbv2/config.h
@@ -117,5 +117,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/flehrad/downbubble/config.h b/keyboards/flehrad/downbubble/config.h
index b8d69244ebf6..fa13006a97e2 100644
--- a/keyboards/flehrad/downbubble/config.h
+++ b/keyboards/flehrad/downbubble/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/fleuron/config.h b/keyboards/fleuron/config.h
index fae7d941aea3..24212bfdc1ec 100644
--- a/keyboards/fleuron/config.h
+++ b/keyboards/fleuron/config.h
@@ -105,8 +105,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_DI_PIN E6 // The pin the LED strip is connected to
#define RGBLED_NUM 18 // Number of LEDs in your strip
diff --git a/keyboards/fluorite/config.h b/keyboards/fluorite/config.h
index 9be300868410..397fdaaebf30 100644
--- a/keyboards/fluorite/config.h
+++ b/keyboards/fluorite/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/flxlb/zplit/config.h b/keyboards/flxlb/zplit/config.h
index 83fe08484410..74c7339bdcec 100644
--- a/keyboards/flxlb/zplit/config.h
+++ b/keyboards/flxlb/zplit/config.h
@@ -86,5 +86,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/flygone60/rev3/config.h b/keyboards/flygone60/rev3/config.h
index e398b1dc608f..b670def33862 100644
--- a/keyboards/flygone60/rev3/config.h
+++ b/keyboards/flygone60/rev3/config.h
@@ -54,7 +54,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/foostan/cornelius/config.h b/keyboards/foostan/cornelius/config.h
index b50b30825517..a3e784150f12 100644
--- a/keyboards/foostan/cornelius/config.h
+++ b/keyboards/foostan/cornelius/config.h
@@ -136,10 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/for_science/config.h b/keyboards/for_science/config.h
index 7428e5a564fa..9c2f484dc910 100644
--- a/keyboards/for_science/config.h
+++ b/keyboards/for_science/config.h
@@ -70,5 +70,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/forever65/config.h b/keyboards/forever65/config.h
index 4ea906b5a76b..0de59946c4b3 100644
--- a/keyboards/forever65/config.h
+++ b/keyboards/forever65/config.h
@@ -64,8 +64,4 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
diff --git a/keyboards/fortitude60/rev1/config.h b/keyboards/fortitude60/rev1/config.h
index 472472329cba..e4366f959fb0 100644
--- a/keyboards/fortitude60/rev1/config.h
+++ b/keyboards/fortitude60/rev1/config.h
@@ -86,5 +86,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/foxlab/key65/hotswap/config.h b/keyboards/foxlab/key65/hotswap/config.h
index 621c6407203d..8c0e5a1b9eb9 100644
--- a/keyboards/foxlab/key65/hotswap/config.h
+++ b/keyboards/foxlab/key65/hotswap/config.h
@@ -115,7 +115,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/foxlab/key65/universal/config.h b/keyboards/foxlab/key65/universal/config.h
index 241d2ce2cb6d..44911bed7764 100644
--- a/keyboards/foxlab/key65/universal/config.h
+++ b/keyboards/foxlab/key65/universal/config.h
@@ -115,7 +115,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/foxlab/leaf60/hotswap/config.h b/keyboards/foxlab/leaf60/hotswap/config.h
index 6092a24f01b1..f224957c59c1 100644
--- a/keyboards/foxlab/leaf60/hotswap/config.h
+++ b/keyboards/foxlab/leaf60/hotswap/config.h
@@ -119,8 +119,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/foxlab/leaf60/universal/config.h b/keyboards/foxlab/leaf60/universal/config.h
index b4214882bc92..d25e14536135 100644
--- a/keyboards/foxlab/leaf60/universal/config.h
+++ b/keyboards/foxlab/leaf60/universal/config.h
@@ -119,8 +119,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/foxlab/time80/config.h b/keyboards/foxlab/time80/config.h
index 8fea3e7e6ee5..27013c5c6768 100644
--- a/keyboards/foxlab/time80/config.h
+++ b/keyboards/foxlab/time80/config.h
@@ -120,10 +120,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/gboards/georgi/config.h b/keyboards/gboards/georgi/config.h
index 5cd2f1620e36..f2e73da899c1 100644
--- a/keyboards/gboards/georgi/config.h
+++ b/keyboards/gboards/georgi/config.h
@@ -27,9 +27,7 @@ along with this program. If not, see .
#define VERBOSE
#define FORCE_NKRO
-#define NO_ACTION_FUNCTION
#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
#define IGNORE_MOD_TAP_INTERRUPT
/* USB Device descriptor parameter */
diff --git a/keyboards/gh60/revc/config.h b/keyboards/gh60/revc/config.h
index 4483473a62e5..527bf4c9593a 100644
--- a/keyboards/gh60/revc/config.h
+++ b/keyboards/gh60/revc/config.h
@@ -103,5 +103,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/gh60/satan/config.h b/keyboards/gh60/satan/config.h
index 2b87f925de10..98218d846606 100644
--- a/keyboards/gh60/satan/config.h
+++ b/keyboards/gh60/satan/config.h
@@ -83,5 +83,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ghs/rar/config.h b/keyboards/ghs/rar/config.h
index 10755f99c246..d97e8841f1b5 100644
--- a/keyboards/ghs/rar/config.h
+++ b/keyboards/ghs/rar/config.h
@@ -110,10 +110,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/gkeyboard/gkb_m16/config.h b/keyboards/gkeyboard/gkb_m16/config.h
index be1861b90f73..690ecf42d1df 100644
--- a/keyboards/gkeyboard/gkb_m16/config.h
+++ b/keyboards/gkeyboard/gkb_m16/config.h
@@ -142,10 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/glenpickle/chimera_ergo/config.h b/keyboards/glenpickle/chimera_ergo/config.h
index 3c0cc5c16203..616d8af24ebb 100644
--- a/keyboards/glenpickle/chimera_ergo/config.h
+++ b/keyboards/glenpickle/chimera_ergo/config.h
@@ -54,5 +54,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/glenpickle/chimera_ls/config.h b/keyboards/glenpickle/chimera_ls/config.h
index ca92e1e2e416..f5da32e3c32b 100644
--- a/keyboards/glenpickle/chimera_ls/config.h
+++ b/keyboards/glenpickle/chimera_ls/config.h
@@ -54,5 +54,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/glenpickle/chimera_ortho/config.h b/keyboards/glenpickle/chimera_ortho/config.h
index 3d86343a67b0..8ae25c1eb432 100644
--- a/keyboards/glenpickle/chimera_ortho/config.h
+++ b/keyboards/glenpickle/chimera_ortho/config.h
@@ -54,5 +54,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/glenpickle/chimera_ortho_plus/config.h b/keyboards/glenpickle/chimera_ortho_plus/config.h
index ebffb8565751..4846a1b20d2d 100644
--- a/keyboards/glenpickle/chimera_ortho_plus/config.h
+++ b/keyboards/glenpickle/chimera_ortho_plus/config.h
@@ -54,5 +54,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/gray_studio/space65/config.h b/keyboards/gray_studio/space65/config.h
index 6091515b521a..23bf1e7f945c 100644
--- a/keyboards/gray_studio/space65/config.h
+++ b/keyboards/gray_studio/space65/config.h
@@ -130,8 +130,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/hadron/config.h b/keyboards/hadron/config.h
index fc0e920eb953..3281984d1978 100644
--- a/keyboards/hadron/config.h
+++ b/keyboards/hadron/config.h
@@ -61,5 +61,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/hadron/ver3/config.h b/keyboards/hadron/ver3/config.h
index 54fab6662d57..c61cc9a1e0da 100644
--- a/keyboards/hadron/ver3/config.h
+++ b/keyboards/hadron/ver3/config.h
@@ -116,8 +116,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Haptic Driver initialization settings
* Feedback Control Settings */
diff --git a/keyboards/halfcliff/config.h b/keyboards/halfcliff/config.h
index 287fd2f4ac7b..9cd03089baff 100644
--- a/keyboards/halfcliff/config.h
+++ b/keyboards/halfcliff/config.h
@@ -63,7 +63,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/han60/config.h b/keyboards/han60/config.h
index a695cd92a3f6..c96cb6782f9d 100644
--- a/keyboards/han60/config.h
+++ b/keyboards/han60/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/412_64/config.h b/keyboards/handwired/412_64/config.h
index 6cc094d6d5f8..df8961dc040d 100644
--- a/keyboards/handwired/412_64/config.h
+++ b/keyboards/handwired/412_64/config.h
@@ -90,6 +90,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/handwired/amigopunk/config.h b/keyboards/handwired/amigopunk/config.h
index 29141234d491..473f33aa9ddc 100644
--- a/keyboards/handwired/amigopunk/config.h
+++ b/keyboards/handwired/amigopunk/config.h
@@ -51,7 +51,3 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/aranck/config.h b/keyboards/handwired/aranck/config.h
index 75f5232f90c4..88b394a29eac 100644
--- a/keyboards/handwired/aranck/config.h
+++ b/keyboards/handwired/aranck/config.h
@@ -149,8 +149,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/arrow_pad/config.h b/keyboards/handwired/arrow_pad/config.h
index dcbdef2fcc96..c8b19524bb1a 100644
--- a/keyboards/handwired/arrow_pad/config.h
+++ b/keyboards/handwired/arrow_pad/config.h
@@ -99,5 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/atreus50/config.h b/keyboards/handwired/atreus50/config.h
index 4a385c35cf79..0356bf3d7d9e 100644
--- a/keyboards/handwired/atreus50/config.h
+++ b/keyboards/handwired/atreus50/config.h
@@ -99,5 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/baredev/rev1/config.h b/keyboards/handwired/baredev/rev1/config.h
index f3d36fd08bc5..430018495ac9 100644
--- a/keyboards/handwired/baredev/rev1/config.h
+++ b/keyboards/handwired/baredev/rev1/config.h
@@ -18,8 +18,3 @@ along with this program. If not, see .
#pragma once
#include "config_common.h"
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/handwired/bolek/config.h b/keyboards/handwired/bolek/config.h
index ecf0b0de36df..aafaa6217460 100644
--- a/keyboards/handwired/bolek/config.h
+++ b/keyboards/handwired/bolek/config.h
@@ -138,10 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/brain/config.h b/keyboards/handwired/brain/config.h
index 2ca3cf1d1e36..87aec1a29938 100644
--- a/keyboards/handwired/brain/config.h
+++ b/keyboards/handwired/brain/config.h
@@ -96,8 +96,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
//#define PREVENT_STUCK_MODIFIERS
//#define TAPPING_TERM 150
diff --git a/keyboards/handwired/bstk100/config.h b/keyboards/handwired/bstk100/config.h
index 6769f9b5c05c..29a5afa35e80 100644
--- a/keyboards/handwired/bstk100/config.h
+++ b/keyboards/handwired/bstk100/config.h
@@ -147,10 +147,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/ck4x4/config.h b/keyboards/handwired/ck4x4/config.h
index 61a5d3baf9ce..428a16317039 100644
--- a/keyboards/handwired/ck4x4/config.h
+++ b/keyboards/handwired/ck4x4/config.h
@@ -62,6 +62,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/handwired/cmd60/config.h b/keyboards/handwired/cmd60/config.h
index ba54cab24768..14bcdec530b2 100644
--- a/keyboards/handwired/cmd60/config.h
+++ b/keyboards/handwired/cmd60/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/co60/rev1/config.h b/keyboards/handwired/co60/rev1/config.h
index 42524994ae10..a41bde6fa251 100644
--- a/keyboards/handwired/co60/rev1/config.h
+++ b/keyboards/handwired/co60/rev1/config.h
@@ -108,5 +108,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/dactyl_left/config.h b/keyboards/handwired/dactyl_left/config.h
index 1e4d279178be..c962f6e17637 100644
--- a/keyboards/handwired/dactyl_left/config.h
+++ b/keyboards/handwired/dactyl_left/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/dactyl_promicro/config.h b/keyboards/handwired/dactyl_promicro/config.h
index 29547f2533b8..19874be79952 100644
--- a/keyboards/handwired/dactyl_promicro/config.h
+++ b/keyboards/handwired/dactyl_promicro/config.h
@@ -79,5 +79,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/dactyl_rah/config.h b/keyboards/handwired/dactyl_rah/config.h
index 2ffe4e8a5201..b5f272ba70d0 100644
--- a/keyboards/handwired/dactyl_rah/config.h
+++ b/keyboards/handwired/dactyl_rah/config.h
@@ -70,9 +70,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/handwired/dc/mc/001/config.h b/keyboards/handwired/dc/mc/001/config.h
index 4c687ae7fa73..5cba80831f71 100644
--- a/keyboards/handwired/dc/mc/001/config.h
+++ b/keyboards/handwired/dc/mc/001/config.h
@@ -70,10 +70,6 @@ along with this program. If not, see .
#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// The (default) Stop key
// Doesn't work, though. Maybe becuase of the bootloader that's in use?
diff --git a/keyboards/handwired/elrgo_s/config.h b/keyboards/handwired/elrgo_s/config.h
index b2ef4681e546..0ba6f7758655 100644
--- a/keyboards/handwired/elrgo_s/config.h
+++ b/keyboards/handwired/elrgo_s/config.h
@@ -54,5 +54,3 @@ Copyright 2021 Yaroslav Smirnov
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/ergocheap/config.h b/keyboards/handwired/ergocheap/config.h
index f563036642e5..26905e8cb380 100644
--- a/keyboards/handwired/ergocheap/config.h
+++ b/keyboards/handwired/ergocheap/config.h
@@ -63,5 +63,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/evk/v1_3/config.h b/keyboards/handwired/evk/v1_3/config.h
index 2ddde6548ea1..374ad9d0c395 100644
--- a/keyboards/handwired/evk/v1_3/config.h
+++ b/keyboards/handwired/evk/v1_3/config.h
@@ -140,8 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/fc200rt_qmk/config.h b/keyboards/handwired/fc200rt_qmk/config.h
index 4f10da75ebcc..2eec7f584c44 100644
--- a/keyboards/handwired/fc200rt_qmk/config.h
+++ b/keyboards/handwired/fc200rt_qmk/config.h
@@ -73,7 +73,3 @@ along with this program. If not, see .
*
*/
//#define FORCE_NKRO
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/fivethirteen/config.h b/keyboards/handwired/fivethirteen/config.h
index 45b459a0ad4f..6ef436506b84 100644
--- a/keyboards/handwired/fivethirteen/config.h
+++ b/keyboards/handwired/fivethirteen/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/floorboard/config.h b/keyboards/handwired/floorboard/config.h
index 7bac3cd2dce4..74be3e4426b9 100644
--- a/keyboards/handwired/floorboard/config.h
+++ b/keyboards/handwired/floorboard/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/frankie_macropad/config.h b/keyboards/handwired/frankie_macropad/config.h
index 5047972d18e9..57e6d7e0ddb3 100644
--- a/keyboards/handwired/frankie_macropad/config.h
+++ b/keyboards/handwired/frankie_macropad/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 2
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/frenchdev/config.h b/keyboards/handwired/frenchdev/config.h
index 7b2fb6e002c1..84f16ea96eb3 100644
--- a/keyboards/handwired/frenchdev/config.h
+++ b/keyboards/handwired/frenchdev/config.h
@@ -76,6 +76,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+
//#define DEBUG_MATRIX_SCAN_RATE
diff --git a/keyboards/handwired/gamenum/config.h b/keyboards/handwired/gamenum/config.h
index 1be44a115613..6fba6586da9e 100644
--- a/keyboards/handwired/gamenum/config.h
+++ b/keyboards/handwired/gamenum/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/hacked_motospeed/config.h b/keyboards/handwired/hacked_motospeed/config.h
index 589b62c01f52..062376222f7d 100644
--- a/keyboards/handwired/hacked_motospeed/config.h
+++ b/keyboards/handwired/hacked_motospeed/config.h
@@ -135,8 +135,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/heisenberg/config.h b/keyboards/handwired/heisenberg/config.h
index 9bf73440c84d..9438f3a082e0 100644
--- a/keyboards/handwired/heisenberg/config.h
+++ b/keyboards/handwired/heisenberg/config.h
@@ -149,8 +149,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/hnah108/config.h b/keyboards/handwired/hnah108/config.h
index b08f24ed8683..e0249ba0c2ed 100644
--- a/keyboards/handwired/hnah108/config.h
+++ b/keyboards/handwired/hnah108/config.h
@@ -158,10 +158,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/hnah40/config.h b/keyboards/handwired/hnah40/config.h
index 6e4493d47fa4..123c4ca38a0f 100644
--- a/keyboards/handwired/hnah40/config.h
+++ b/keyboards/handwired/hnah40/config.h
@@ -115,5 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/ibm122m/config.h b/keyboards/handwired/ibm122m/config.h
index c58b8897edde..cf65a8b9094b 100644
--- a/keyboards/handwired/ibm122m/config.h
+++ b/keyboards/handwired/ibm122m/config.h
@@ -108,5 +108,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/jtallbean/split_65/config.h b/keyboards/handwired/jtallbean/split_65/config.h
index 1620dde024bf..196b0bc55ddd 100644
--- a/keyboards/handwired/jtallbean/split_65/config.h
+++ b/keyboards/handwired/jtallbean/split_65/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/juliet/config.h b/keyboards/handwired/juliet/config.h
index bab4fe3333e8..5189017dfbc8 100644
--- a/keyboards/handwired/juliet/config.h
+++ b/keyboards/handwired/juliet/config.h
@@ -133,9 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/kbod/config.h b/keyboards/handwired/kbod/config.h
index b8b40728cda4..8cf38f59dc0d 100644
--- a/keyboards/handwired/kbod/config.h
+++ b/keyboards/handwired/kbod/config.h
@@ -100,8 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#undef TAPPING_TOGGLE
#define TAPPING_TOGGLE 2
diff --git a/keyboards/handwired/ks63/config.h b/keyboards/handwired/ks63/config.h
index e49d09067839..b75346e6f563 100644
--- a/keyboards/handwired/ks63/config.h
+++ b/keyboards/handwired/ks63/config.h
@@ -73,8 +73,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MASTER_LEFT
#define USE_SERIAL
diff --git a/keyboards/handwired/leftynumpad/config.h b/keyboards/handwired/leftynumpad/config.h
index 9059bfe760ff..db89057e6260 100644
--- a/keyboards/handwired/leftynumpad/config.h
+++ b/keyboards/handwired/leftynumpad/config.h
@@ -96,7 +96,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/lemonpad/config.h b/keyboards/handwired/lemonpad/config.h
index 46369cb999ee..c4e488f57250 100644
--- a/keyboards/handwired/lemonpad/config.h
+++ b/keyboards/handwired/lemonpad/config.h
@@ -131,10 +131,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h
index 92b633d75c81..fa49ae4e6ff5 100644
--- a/keyboards/handwired/macroboard/config.h
+++ b/keyboards/handwired/macroboard/config.h
@@ -132,10 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/magicforce61/config.h b/keyboards/handwired/magicforce61/config.h
index 193d85d2f30a..e54ee545daa5 100644
--- a/keyboards/handwired/magicforce61/config.h
+++ b/keyboards/handwired/magicforce61/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/magicforce68/config.h b/keyboards/handwired/magicforce68/config.h
index 8ad3269d569a..0539fab02398 100644
--- a/keyboards/handwired/magicforce68/config.h
+++ b/keyboards/handwired/magicforce68/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/mechboards_micropad/config.h b/keyboards/handwired/mechboards_micropad/config.h
index 3eec736aea22..f008d596f124 100644
--- a/keyboards/handwired/mechboards_micropad/config.h
+++ b/keyboards/handwired/mechboards_micropad/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/meck_tkl/config.h b/keyboards/handwired/meck_tkl/config.h
index 5c22e781e443..7029e225301e 100644
--- a/keyboards/handwired/meck_tkl/config.h
+++ b/keyboards/handwired/meck_tkl/config.h
@@ -38,10 +38,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/minorca/config.h b/keyboards/handwired/minorca/config.h
index 9828c03e115e..e987ba67f09f 100644
--- a/keyboards/handwired/minorca/config.h
+++ b/keyboards/handwired/minorca/config.h
@@ -67,9 +67,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
/* bootmagic salt key */
#define BOOTMAGIC_KEY_SALT KC_ESC
diff --git a/keyboards/handwired/ms_sculpt_mobile/config.h b/keyboards/handwired/ms_sculpt_mobile/config.h
index c3c2a0962ea0..13f5a588b6c6 100644
--- a/keyboards/handwired/ms_sculpt_mobile/config.h
+++ b/keyboards/handwired/ms_sculpt_mobile/config.h
@@ -82,5 +82,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/nicekey/config.h b/keyboards/handwired/nicekey/config.h
index 19e707c1fcc9..7a41e62a57a1 100644
--- a/keyboards/handwired/nicekey/config.h
+++ b/keyboards/handwired/nicekey/config.h
@@ -62,5 +62,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/not_so_minidox/config.h b/keyboards/handwired/not_so_minidox/config.h
index 177552e2a6c7..aa6319cb0f68 100644
--- a/keyboards/handwired/not_so_minidox/config.h
+++ b/keyboards/handwired/not_so_minidox/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/numpad20/config.h b/keyboards/handwired/numpad20/config.h
index dba74f43bd88..4b9ca1baf35e 100644
--- a/keyboards/handwired/numpad20/config.h
+++ b/keyboards/handwired/numpad20/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/obuwunkunubi/spaget/config.h b/keyboards/handwired/obuwunkunubi/spaget/config.h
index 56fb46ad9172..1558acb55aee 100644
--- a/keyboards/handwired/obuwunkunubi/spaget/config.h
+++ b/keyboards/handwired/obuwunkunubi/spaget/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/oem_ansi_fullsize/config.h b/keyboards/handwired/oem_ansi_fullsize/config.h
index 7219bd3403a0..710b4a871b27 100644
--- a/keyboards/handwired/oem_ansi_fullsize/config.h
+++ b/keyboards/handwired/oem_ansi_fullsize/config.h
@@ -150,10 +150,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h
index 950146a5d371..f491d4d39370 100644
--- a/keyboards/handwired/onekey/config.h
+++ b/keyboards/handwired/onekey/config.h
@@ -59,10 +59,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/ortho5x13/config.h b/keyboards/handwired/ortho5x13/config.h
index d831940b8d46..7731d29f0c54 100644
--- a/keyboards/handwired/ortho5x13/config.h
+++ b/keyboards/handwired/ortho5x13/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/ortho5x14/config.h b/keyboards/handwired/ortho5x14/config.h
index 33ad68b0b168..a5aab6168f6a 100644
--- a/keyboards/handwired/ortho5x14/config.h
+++ b/keyboards/handwired/ortho5x14/config.h
@@ -104,6 +104,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/handwired/owlet60/config.h b/keyboards/handwired/owlet60/config.h
index d20e1fa97534..9613a97580a4 100644
--- a/keyboards/handwired/owlet60/config.h
+++ b/keyboards/handwired/owlet60/config.h
@@ -137,8 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/pilcrow/config.h b/keyboards/handwired/pilcrow/config.h
index 15f487082bc1..3ed0f5de6a25 100644
--- a/keyboards/handwired/pilcrow/config.h
+++ b/keyboards/handwired/pilcrow/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h
index 612675c63a07..68f83035f991 100644
--- a/keyboards/handwired/promethium/config.h
+++ b/keyboards/handwired/promethium/config.h
@@ -123,8 +123,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define PS2_MOUSE_INIT_DELAY 2000
#define BATTERY_POLL 30000
diff --git a/keyboards/handwired/reddot/config.h b/keyboards/handwired/reddot/config.h
index 196f08f6f5f6..6028971dda23 100755
--- a/keyboards/handwired/reddot/config.h
+++ b/keyboards/handwired/reddot/config.h
@@ -98,5 +98,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/retro_refit/config.h b/keyboards/handwired/retro_refit/config.h
index 74cebfb8257b..beb9b26deb68 100644
--- a/keyboards/handwired/retro_refit/config.h
+++ b/keyboards/handwired/retro_refit/config.h
@@ -85,5 +85,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/sick68/config.h b/keyboards/handwired/sick68/config.h
index 2205126cc35d..16b5fc76e77e 100644
--- a/keyboards/handwired/sick68/config.h
+++ b/keyboards/handwired/sick68/config.h
@@ -139,10 +139,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/snatchpad/config.h b/keyboards/handwired/snatchpad/config.h
index c0d337d5df2b..c0ac5ebbde66 100644
--- a/keyboards/handwired/snatchpad/config.h
+++ b/keyboards/handwired/snatchpad/config.h
@@ -136,10 +136,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/sono1/config.h b/keyboards/handwired/sono1/config.h
index 3b06342a1af7..91519e884ade 100644
--- a/keyboards/handwired/sono1/config.h
+++ b/keyboards/handwired/sono1/config.h
@@ -36,14 +36,10 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
/* mechanical locking support. NumLock key on the numpad uses Alps SKCL Lock switch */
#define LOCKING_SUPPORT_ENABLE
-#define LOCKING_RESYNC_ENABLE
\ No newline at end of file
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/handwired/split65/promicro/config.h b/keyboards/handwired/split65/promicro/config.h
index 824dc76402a8..e700578e085e 100644
--- a/keyboards/handwired/split65/promicro/config.h
+++ b/keyboards/handwired/split65/promicro/config.h
@@ -47,7 +47,5 @@
// Feature diable options
//#define NO_DEBUG
//#define NO_PRINT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define OLED_DISPLAY_128X64
diff --git a/keyboards/handwired/split65/stm32/config.h b/keyboards/handwired/split65/stm32/config.h
index 28df96442302..b17348128011 100644
--- a/keyboards/handwired/split65/stm32/config.h
+++ b/keyboards/handwired/split65/stm32/config.h
@@ -54,7 +54,5 @@
// Feature diable options
//#define NO_DEBUG
//#define NO_PRINT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define OLED_DISPLAY_128X64
diff --git a/keyboards/handwired/split89/config.h b/keyboards/handwired/split89/config.h
index d78535a20107..7927c1d83c40 100644
--- a/keyboards/handwired/split89/config.h
+++ b/keyboards/handwired/split89/config.h
@@ -154,10 +154,6 @@ COLS = number of cols per side which curently needs to be equal so there are bla
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/splittest/config.h b/keyboards/handwired/splittest/config.h
index 93b5164d763d..d4816e435523 100644
--- a/keyboards/handwired/splittest/config.h
+++ b/keyboards/handwired/splittest/config.h
@@ -65,5 +65,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/sticc14/config.h b/keyboards/handwired/sticc14/config.h
index 6c296d78936a..c269f4706dc5 100644
--- a/keyboards/handwired/sticc14/config.h
+++ b/keyboards/handwired/sticc14/config.h
@@ -136,8 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/symmetric70_proto/promicro/config.h b/keyboards/handwired/symmetric70_proto/promicro/config.h
index 2060c6260606..570de7039d10 100644
--- a/keyboards/handwired/symmetric70_proto/promicro/config.h
+++ b/keyboards/handwired/symmetric70_proto/promicro/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/symmetric70_proto/proton_c/config.h b/keyboards/handwired/symmetric70_proto/proton_c/config.h
index 84586854f4f0..92716a21f6eb 100644
--- a/keyboards/handwired/symmetric70_proto/proton_c/config.h
+++ b/keyboards/handwired/symmetric70_proto/proton_c/config.h
@@ -151,10 +151,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/t111/config.h b/keyboards/handwired/t111/config.h
index e459e7659eb8..04c1ece0e514 100644
--- a/keyboards/handwired/t111/config.h
+++ b/keyboards/handwired/t111/config.h
@@ -83,10 +83,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/tennie/config.h b/keyboards/handwired/tennie/config.h
index 6955f08db7c6..e74b9f2aeea3 100644
--- a/keyboards/handwired/tennie/config.h
+++ b/keyboards/handwired/tennie/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/handwired/terminus_mini/config.h b/keyboards/handwired/terminus_mini/config.h
index e1d77d55e241..94c182eb4a26 100644
--- a/keyboards/handwired/terminus_mini/config.h
+++ b/keyboards/handwired/terminus_mini/config.h
@@ -106,5 +106,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/config.h b/keyboards/handwired/tractyl_manuform/4x6_right/config.h
index bba9db137b33..ab46bc527649 100644
--- a/keyboards/handwired/tractyl_manuform/4x6_right/config.h
+++ b/keyboards/handwired/tractyl_manuform/4x6_right/config.h
@@ -84,8 +84,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
/* PMW3360 Settings */
#define PMW3360_CS_PIN B0
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/config.h
index b4f09e5e87f7..fc5037ae9d2a 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/config.h
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/config.h
@@ -47,7 +47,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define POINTING_DEVICE_RIGHT
diff --git a/keyboards/handwired/tractyl_manuform/config.h b/keyboards/handwired/tractyl_manuform/config.h
index 821f9be9b602..845125c5cdd7 100644
--- a/keyboards/handwired/tractyl_manuform/config.h
+++ b/keyboards/handwired/tractyl_manuform/config.h
@@ -33,8 +33,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define SPLIT_POINTING_ENABLE
#define POINTING_DEVICE_TASK_THROTTLE_MS 1
diff --git a/keyboards/handwired/traveller/config.h b/keyboards/handwired/traveller/config.h
index 2e3767e0cdcc..815ec7fdd51a 100644
--- a/keyboards/handwired/traveller/config.h
+++ b/keyboards/handwired/traveller/config.h
@@ -132,10 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/tritium_numpad/config.h b/keyboards/handwired/tritium_numpad/config.h
index 1424c6b49183..ef835ad2aa50 100644
--- a/keyboards/handwired/tritium_numpad/config.h
+++ b/keyboards/handwired/tritium_numpad/config.h
@@ -80,6 +80,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/handwired/twadlee/tp69/config.h b/keyboards/handwired/twadlee/tp69/config.h
index aac4c874b2a3..f16444c1192e 100644
--- a/keyboards/handwired/twadlee/tp69/config.h
+++ b/keyboards/handwired/twadlee/tp69/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/unk/rev1/config.h b/keyboards/handwired/unk/rev1/config.h
index 84c6b123ab37..65a02ff7ca7e 100644
--- a/keyboards/handwired/unk/rev1/config.h
+++ b/keyboards/handwired/unk/rev1/config.h
@@ -86,5 +86,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/handwired/uthol/rev3/config.h b/keyboards/handwired/uthol/rev3/config.h
index 47f079e612dd..90880998b712 100644
--- a/keyboards/handwired/uthol/rev3/config.h
+++ b/keyboards/handwired/uthol/rev3/config.h
@@ -58,10 +58,6 @@
#define TAPPING_TERM 500
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
// RGB Stuff
#define RGB_DI_PIN B0
#define RGBLED_NUM 39
diff --git a/keyboards/handwired/videowriter/config.h b/keyboards/handwired/videowriter/config.h
index 73162b6da6e8..b4909ffba1bb 100644
--- a/keyboards/handwired/videowriter/config.h
+++ b/keyboards/handwired/videowriter/config.h
@@ -58,10 +58,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 1
#define BOOTMAGIC_LITE_COLUMN 7
diff --git a/keyboards/handwired/woodpad/config.h b/keyboards/handwired/woodpad/config.h
index 9894fe13385e..9b92798d9654 100644
--- a/keyboards/handwired/woodpad/config.h
+++ b/keyboards/handwired/woodpad/config.h
@@ -132,10 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/xealous/rev1/config.h b/keyboards/handwired/xealous/rev1/config.h
index 8bd5b464a4f3..cbb4648d1976 100644
--- a/keyboards/handwired/xealous/rev1/config.h
+++ b/keyboards/handwired/xealous/rev1/config.h
@@ -77,6 +77,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+
#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/handwired/z150/config.h b/keyboards/handwired/z150/config.h
index ecdb7395447f..5d11c31a2a0a 100644
--- a/keyboards/handwired/z150/config.h
+++ b/keyboards/handwired/z150/config.h
@@ -83,10 +83,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h
index ea2ce8c94152..b08865d0a407 100644
--- a/keyboards/helix/pico/config.h
+++ b/keyboards/helix/pico/config.h
@@ -135,5 +135,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h
index 9b813b347a3a..577edba56bda 100644
--- a/keyboards/helix/rev2/config.h
+++ b/keyboards/helix/rev2/config.h
@@ -162,6 +162,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h
index 218ef5e5cc7f..1c0ec4d36c7f 100644
--- a/keyboards/helix/rev3_4rows/config.h
+++ b/keyboards/helix/rev3_4rows/config.h
@@ -161,10 +161,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h
index 79c7961ed9fc..c880e27c88a2 100644
--- a/keyboards/helix/rev3_5rows/config.h
+++ b/keyboards/helix/rev3_5rows/config.h
@@ -161,10 +161,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hhkb/ansi/config.h b/keyboards/hhkb/ansi/config.h
index 78fe0c47aebd..8307fc1679e4 100644
--- a/keyboards/hhkb/ansi/config.h
+++ b/keyboards/hhkb/ansi/config.h
@@ -87,5 +87,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/hhkb/jp/config.h b/keyboards/hhkb/jp/config.h
index 22ac6aa62356..04ee61c76860 100644
--- a/keyboards/hhkb/jp/config.h
+++ b/keyboards/hhkb/jp/config.h
@@ -87,5 +87,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/hineybush/h08_ocelot/config.h b/keyboards/hineybush/h08_ocelot/config.h
index 9b5fd2d9b9b2..80f1a1df1e72 100644
--- a/keyboards/hineybush/h08_ocelot/config.h
+++ b/keyboards/hineybush/h08_ocelot/config.h
@@ -141,10 +141,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hineybush/h10/config.h b/keyboards/hineybush/h10/config.h
index 81641bdbd3b4..eafcd95eef51 100644
--- a/keyboards/hineybush/h10/config.h
+++ b/keyboards/hineybush/h10/config.h
@@ -116,10 +116,6 @@ along with this program. If not, see .
*/
//#define FORCE_NKRO
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hineybush/h60/config.h b/keyboards/hineybush/h60/config.h
index 4553bb122936..044f05fa84fa 100644
--- a/keyboards/hineybush/h60/config.h
+++ b/keyboards/hineybush/h60/config.h
@@ -79,10 +79,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hineybush/h65/config.h b/keyboards/hineybush/h65/config.h
index b99f4860134e..19c9c5b5d8ac 100644
--- a/keyboards/hineybush/h65/config.h
+++ b/keyboards/hineybush/h65/config.h
@@ -141,10 +141,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hineybush/h65_hotswap/config.h b/keyboards/hineybush/h65_hotswap/config.h
index 805476d002c4..f266003a888f 100644
--- a/keyboards/hineybush/h65_hotswap/config.h
+++ b/keyboards/hineybush/h65_hotswap/config.h
@@ -141,10 +141,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hineybush/h660s/config.h b/keyboards/hineybush/h660s/config.h
index 8f33fe3e6b2c..45a1c53508be 100644
--- a/keyboards/hineybush/h660s/config.h
+++ b/keyboards/hineybush/h660s/config.h
@@ -132,10 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hineybush/h75_singa/config.h b/keyboards/hineybush/h75_singa/config.h
index e1389c8f96e6..c8b3ab7285e0 100644
--- a/keyboards/hineybush/h75_singa/config.h
+++ b/keyboards/hineybush/h75_singa/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/hineybush/physix/config.h b/keyboards/hineybush/physix/config.h
index c4a0274b93af..87c49270b30c 100644
--- a/keyboards/hineybush/physix/config.h
+++ b/keyboards/hineybush/physix/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hineybush/sm68/config.h b/keyboards/hineybush/sm68/config.h
index fd2403b8b5b5..89541179c2d5 100644
--- a/keyboards/hineybush/sm68/config.h
+++ b/keyboards/hineybush/sm68/config.h
@@ -128,8 +128,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/hnahkb/freyr/config.h b/keyboards/hnahkb/freyr/config.h
index d912b3cc1a32..9658793aa212 100644
--- a/keyboards/hnahkb/freyr/config.h
+++ b/keyboards/hnahkb/freyr/config.h
@@ -136,10 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hnahkb/stella/config.h b/keyboards/hnahkb/stella/config.h
index 512b7571d548..2ca475c38cee 100644
--- a/keyboards/hnahkb/stella/config.h
+++ b/keyboards/hnahkb/stella/config.h
@@ -136,10 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/hnahkb/vn66/config.h b/keyboards/hnahkb/vn66/config.h
index d8095418417e..1f6387fafa6a 100644
--- a/keyboards/hnahkb/vn66/config.h
+++ b/keyboards/hnahkb/vn66/config.h
@@ -139,10 +139,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/honeycomb/config.h b/keyboards/honeycomb/config.h
index c9595436183f..6780c2d41bda 100755
--- a/keyboards/honeycomb/config.h
+++ b/keyboards/honeycomb/config.h
@@ -43,5 +43,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/horizon/config.h b/keyboards/horizon/config.h
index 8abc3b131b3b..bb0a6dcbfc6c 100644
--- a/keyboards/horizon/config.h
+++ b/keyboards/horizon/config.h
@@ -40,7 +40,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/hotdox/config.h b/keyboards/hotdox/config.h
index 21d5938faf99..b72faa613c4d 100644
--- a/keyboards/hotdox/config.h
+++ b/keyboards/hotdox/config.h
@@ -72,6 +72,5 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+
//#define DEBUG_MATRIX_SCAN_RATE
diff --git a/keyboards/hub20/config.h b/keyboards/hub20/config.h
index de2526522c1e..aca3d7accee0 100644
--- a/keyboards/hub20/config.h
+++ b/keyboards/hub20/config.h
@@ -113,7 +113,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ianklug/grooveboard/config.h b/keyboards/ianklug/grooveboard/config.h
index aac9be1022fe..4103759d0268 100644
--- a/keyboards/ianklug/grooveboard/config.h
+++ b/keyboards/ianklug/grooveboard/config.h
@@ -146,10 +146,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ibnuda/gurindam/config.h b/keyboards/ibnuda/gurindam/config.h
index 9262bdbcda82..a79ea6c5db25 100644
--- a/keyboards/ibnuda/gurindam/config.h
+++ b/keyboards/ibnuda/gurindam/config.h
@@ -113,5 +113,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ibnuda/squiggle/config.h b/keyboards/ibnuda/squiggle/config.h
index 6aca2c1b188b..d9a144aca7f6 100644
--- a/keyboards/ibnuda/squiggle/config.h
+++ b/keyboards/ibnuda/squiggle/config.h
@@ -37,8 +37,3 @@ along with this program. If not, see .
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/idb/idb_60/config.h b/keyboards/idb/idb_60/config.h
index 8a0852ccbd10..81dcfa854eae 100644
--- a/keyboards/idb/idb_60/config.h
+++ b/keyboards/idb/idb_60/config.h
@@ -97,5 +97,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/idobao/id75/v1/config.h b/keyboards/idobao/id75/v1/config.h
index caaf7f75dc95..918dc16481f2 100644
--- a/keyboards/idobao/id75/v1/config.h
+++ b/keyboards/idobao/id75/v1/config.h
@@ -114,8 +114,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/idobao/id75/v2/config.h b/keyboards/idobao/id75/v2/config.h
index c2b64649cbe3..c2e54f611de4 100644
--- a/keyboards/idobao/id75/v2/config.h
+++ b/keyboards/idobao/id75/v2/config.h
@@ -144,8 +144,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/idobao/id87/v2/config.h b/keyboards/idobao/id87/v2/config.h
index 3ef24f0bc5fd..f094ef06389f 100644
--- a/keyboards/idobao/id87/v2/config.h
+++ b/keyboards/idobao/id87/v2/config.h
@@ -151,10 +151,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/illuminati/is0/config.h b/keyboards/illuminati/is0/config.h
index 948ea8282cac..cd7a7ce28fc0 100644
--- a/keyboards/illuminati/is0/config.h
+++ b/keyboards/illuminati/is0/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/illusion/rosa/config.h b/keyboards/illusion/rosa/config.h
index 6bd4884138ca..5ad421ecbea5 100644
--- a/keyboards/illusion/rosa/config.h
+++ b/keyboards/illusion/rosa/config.h
@@ -49,10 +49,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-// #define NO_ACTION_MACRO
-// #define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
-// #define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ilumkb/primus75/config.h b/keyboards/ilumkb/primus75/config.h
index fc5dd87f0906..4b6901d09673 100644
--- a/keyboards/ilumkb/primus75/config.h
+++ b/keyboards/ilumkb/primus75/config.h
@@ -56,7 +56,4 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h
index 1efdb1af25c5..ae737bd1b665 100644
--- a/keyboards/ilumkb/simpler61/config.h
+++ b/keyboards/ilumkb/simpler61/config.h
@@ -39,10 +39,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h
index 179b98113b79..faf8fd152da6 100644
--- a/keyboards/ilumkb/simpler64/config.h
+++ b/keyboards/ilumkb/simpler64/config.h
@@ -39,10 +39,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h
index e6f1b81f5476..debf9a62b984 100644
--- a/keyboards/input_club/ergodox_infinity/config.h
+++ b/keyboards/input_club/ergodox_infinity/config.h
@@ -153,5 +153,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/input_club/infinity60/config.h b/keyboards/input_club/infinity60/config.h
index e73a663b39ec..18fedcb2195f 100644
--- a/keyboards/input_club/infinity60/config.h
+++ b/keyboards/input_club/infinity60/config.h
@@ -57,5 +57,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h
index de73e06a98ca..8502ba7046e7 100644
--- a/keyboards/input_club/k_type/config.h
+++ b/keyboards/input_club/k_type/config.h
@@ -98,10 +98,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h
index d2b6639a3065..4ea7e7806f4d 100644
--- a/keyboards/input_club/whitefox/config.h
+++ b/keyboards/input_club/whitefox/config.h
@@ -117,10 +117,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/irene/config.h b/keyboards/irene/config.h
index 15750f5406db..34093e33a115 100644
--- a/keyboards/irene/config.h
+++ b/keyboards/irene/config.h
@@ -141,10 +141,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/iriskeyboards/config.h b/keyboards/iriskeyboards/config.h
index 77aedd69f167..8757c407b2bb 100644
--- a/keyboards/iriskeyboards/config.h
+++ b/keyboards/iriskeyboards/config.h
@@ -145,10 +145,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/j80/config.h b/keyboards/j80/config.h
index 10b4116181a1..3aaeb26dad43 100644
--- a/keyboards/j80/config.h
+++ b/keyboards/j80/config.h
@@ -42,10 +42,6 @@ along with this program. If not, see .
#define BACKLIGHT_LEVELS 3
#define BACKLIGHT_PIN D4
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/jacky_studio/s7_elephant/rev2/config.h b/keyboards/jacky_studio/s7_elephant/rev2/config.h
index d0ca4045c75b..246479dd3758 100644
--- a/keyboards/jacky_studio/s7_elephant/rev2/config.h
+++ b/keyboards/jacky_studio/s7_elephant/rev2/config.h
@@ -25,10 +25,6 @@
#define MANUFACTURER Jacky
#define PRODUCT Jacky S7 Elephant Rev 2
-/* Don't remove this without also removing LTO_ENABLE=yes in rules.mk */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16
diff --git a/keyboards/jadookb/jkb65/config.h b/keyboards/jadookb/jkb65/config.h
index d397f1962bac..dae3cea49abb 100644
--- a/keyboards/jadookb/jkb65/config.h
+++ b/keyboards/jadookb/jkb65/config.h
@@ -98,6 +98,3 @@
#define DEBOUNCE 5
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/jae/j01/config.h b/keyboards/jae/j01/config.h
index 68e8b0ff08c9..552f6930cb3c 100644
--- a/keyboards/jae/j01/config.h
+++ b/keyboards/jae/j01/config.h
@@ -110,10 +110,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 2
diff --git a/keyboards/jagdpietr/drakon/config.h b/keyboards/jagdpietr/drakon/config.h
index f9565e41a488..611b107137c2 100644
--- a/keyboards/jagdpietr/drakon/config.h
+++ b/keyboards/jagdpietr/drakon/config.h
@@ -108,7 +108,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/jc65/v32a/config.h b/keyboards/jc65/v32a/config.h
index d6907c96c33c..b4cef251b5ee 100644
--- a/keyboards/jc65/v32a/config.h
+++ b/keyboards/jc65/v32a/config.h
@@ -43,6 +43,3 @@ along with this program. If not, see .
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 8
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/jd45/config.h b/keyboards/jd45/config.h
index be2f0963ace8..3deea197409e 100644
--- a/keyboards/jd45/config.h
+++ b/keyboards/jd45/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/jm60/config.h b/keyboards/jm60/config.h
index 2409142e097c..113c6b4dfb66 100644
--- a/keyboards/jm60/config.h
+++ b/keyboards/jm60/config.h
@@ -130,10 +130,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/jones/v03/config.h b/keyboards/jones/v03/config.h
index 7a37fc1f3dfd..706c1d05e9a1 100644
--- a/keyboards/jones/v03/config.h
+++ b/keyboards/jones/v03/config.h
@@ -156,10 +156,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/jones/v03_1/config.h b/keyboards/jones/v03_1/config.h
index 1b67b6b58fef..33dd0994a536 100644
--- a/keyboards/jones/v03_1/config.h
+++ b/keyboards/jones/v03_1/config.h
@@ -157,10 +157,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/jones/v1/config.h b/keyboards/jones/v1/config.h
index 1f8acc6eb647..16610eef4afa 100644
--- a/keyboards/jones/v1/config.h
+++ b/keyboards/jones/v1/config.h
@@ -65,10 +65,6 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite trigger key. Left-Top of the layout. */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 9
diff --git a/keyboards/kagizaraya/chidori/config.h b/keyboards/kagizaraya/chidori/config.h
index 2db5d57ef7a0..fba0ab1e3940 100644
--- a/keyboards/kagizaraya/chidori/config.h
+++ b/keyboards/kagizaraya/chidori/config.h
@@ -156,8 +156,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kagizaraya/halberd/config.h b/keyboards/kagizaraya/halberd/config.h
index 66777a25093a..085688e335e4 100644
--- a/keyboards/kagizaraya/halberd/config.h
+++ b/keyboards/kagizaraya/halberd/config.h
@@ -113,8 +113,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kagizaraya/scythe/config.h b/keyboards/kagizaraya/scythe/config.h
index ad4d1ded4f27..fb75e32b6217 100644
--- a/keyboards/kagizaraya/scythe/config.h
+++ b/keyboards/kagizaraya/scythe/config.h
@@ -116,8 +116,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/angel17/alpha/config.h b/keyboards/kakunpc/angel17/alpha/config.h
index 35e9c132b85c..192464c21692 100644
--- a/keyboards/kakunpc/angel17/alpha/config.h
+++ b/keyboards/kakunpc/angel17/alpha/config.h
@@ -136,8 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/angel17/rev1/config.h b/keyboards/kakunpc/angel17/rev1/config.h
index a43208d2b908..f042a089c4dc 100644
--- a/keyboards/kakunpc/angel17/rev1/config.h
+++ b/keyboards/kakunpc/angel17/rev1/config.h
@@ -131,8 +131,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/angel64/alpha/config.h b/keyboards/kakunpc/angel64/alpha/config.h
index b3270fdd8b3e..d2057266cebc 100644
--- a/keyboards/kakunpc/angel64/alpha/config.h
+++ b/keyboards/kakunpc/angel64/alpha/config.h
@@ -129,8 +129,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/angel64/rev1/config.h b/keyboards/kakunpc/angel64/rev1/config.h
index b3270fdd8b3e..d2057266cebc 100644
--- a/keyboards/kakunpc/angel64/rev1/config.h
+++ b/keyboards/kakunpc/angel64/rev1/config.h
@@ -129,8 +129,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/business_card/alpha/config.h b/keyboards/kakunpc/business_card/alpha/config.h
index 81bb16161f4e..e7b5f7147d59 100644
--- a/keyboards/kakunpc/business_card/alpha/config.h
+++ b/keyboards/kakunpc/business_card/alpha/config.h
@@ -130,8 +130,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/business_card/beta/config.h b/keyboards/kakunpc/business_card/beta/config.h
index 9e4e8da96380..2bee5f53374b 100644
--- a/keyboards/kakunpc/business_card/beta/config.h
+++ b/keyboards/kakunpc/business_card/beta/config.h
@@ -130,8 +130,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/choc_taro/config.h b/keyboards/kakunpc/choc_taro/config.h
index 2852206b14e8..e81abe07a616 100644
--- a/keyboards/kakunpc/choc_taro/config.h
+++ b/keyboards/kakunpc/choc_taro/config.h
@@ -134,10 +134,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kakunpc/rabbit_capture_plan/config.h b/keyboards/kakunpc/rabbit_capture_plan/config.h
index b622d33c1ad6..a115454fcc14 100644
--- a/keyboards/kakunpc/rabbit_capture_plan/config.h
+++ b/keyboards/kakunpc/rabbit_capture_plan/config.h
@@ -139,10 +139,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kakunpc/suihankey/alpha/config.h b/keyboards/kakunpc/suihankey/alpha/config.h
index b11478adfcbc..3d821566aef9 100644
--- a/keyboards/kakunpc/suihankey/alpha/config.h
+++ b/keyboards/kakunpc/suihankey/alpha/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/suihankey/rev1/config.h b/keyboards/kakunpc/suihankey/rev1/config.h
index b2801cd86220..106cfc2c3b56 100644
--- a/keyboards/kakunpc/suihankey/rev1/config.h
+++ b/keyboards/kakunpc/suihankey/rev1/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/suihankey/split/alpha/config.h b/keyboards/kakunpc/suihankey/split/alpha/config.h
index ae5acdbd4bbd..41312831668c 100644
--- a/keyboards/kakunpc/suihankey/split/alpha/config.h
+++ b/keyboards/kakunpc/suihankey/split/alpha/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/suihankey/split/rev1/config.h b/keyboards/kakunpc/suihankey/split/rev1/config.h
index 6b7dd2bac90d..83dc587e5745 100644
--- a/keyboards/kakunpc/suihankey/split/rev1/config.h
+++ b/keyboards/kakunpc/suihankey/split/rev1/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kakunpc/thedogkeyboard/config.h b/keyboards/kakunpc/thedogkeyboard/config.h
index 099c157cffe1..fdf0336f5ff9 100644
--- a/keyboards/kakunpc/thedogkeyboard/config.h
+++ b/keyboards/kakunpc/thedogkeyboard/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kapcave/arya/config.h b/keyboards/kapcave/arya/config.h
index 62df795ff5ac..c6b6c61cf5d3 100644
--- a/keyboards/kapcave/arya/config.h
+++ b/keyboards/kapcave/arya/config.h
@@ -64,5 +64,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kb58/config.h b/keyboards/kb58/config.h
index 9b8216e75b94..81d946aaabaa 100644
--- a/keyboards/kb58/config.h
+++ b/keyboards/kb58/config.h
@@ -145,10 +145,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kb_elmo/isolation/config.h b/keyboards/kb_elmo/isolation/config.h
index 3d32efbcb45d..2f083955b077 100644
--- a/keyboards/kb_elmo/isolation/config.h
+++ b/keyboards/kb_elmo/isolation/config.h
@@ -56,7 +56,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kb_elmo/vertex/config.h b/keyboards/kb_elmo/vertex/config.h
index 7fca07280e84..9d8eafe5bf10 100644
--- a/keyboards/kb_elmo/vertex/config.h
+++ b/keyboards/kb_elmo/vertex/config.h
@@ -40,7 +40,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kbdclack/kaishi65/config.h b/keyboards/kbdclack/kaishi65/config.h
index 390ef6498187..d9ac9b8137a2 100644
--- a/keyboards/kbdclack/kaishi65/config.h
+++ b/keyboards/kbdclack/kaishi65/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h
index c4124111335c..18add4d13638 100644
--- a/keyboards/kbdfans/bella/rgb/config.h
+++ b/keyboards/kbdfans/bella/rgb/config.h
@@ -34,7 +34,6 @@
#define DEBOUNCE 5
-/* disable these deprecated features by default */
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h
index ca43d80708b2..78082a0a01f2 100644
--- a/keyboards/kbdfans/bella/rgb_iso/config.h
+++ b/keyboards/kbdfans/bella/rgb_iso/config.h
@@ -34,7 +34,6 @@
#define DEBOUNCE 5
-/* disable these deprecated features by default */
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h
index 20ee0df25ab5..b74da64e2049 100644
--- a/keyboards/kbdfans/boop65/rgb/config.h
+++ b/keyboards/kbdfans/boop65/rgb/config.h
@@ -37,9 +37,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define USB_SUSPEND_WAKEUP_DELAY 5000
diff --git a/keyboards/kbdfans/kbd19x/config.h b/keyboards/kbdfans/kbd19x/config.h
index 0fbf429c459f..e738f771773c 100644
--- a/keyboards/kbdfans/kbd19x/config.h
+++ b/keyboards/kbdfans/kbd19x/config.h
@@ -120,6 +120,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/kbdfans/kbd4x/config.h b/keyboards/kbdfans/kbd4x/config.h
index a75efa6eae94..86989e2b08e4 100644
--- a/keyboards/kbdfans/kbd4x/config.h
+++ b/keyboards/kbdfans/kbd4x/config.h
@@ -115,6 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/kbdfans/kbd66/config.h b/keyboards/kbdfans/kbd66/config.h
index 2098ebf60ff5..2a10bf08ae00 100644
--- a/keyboards/kbdfans/kbd66/config.h
+++ b/keyboards/kbdfans/kbd66/config.h
@@ -106,5 +106,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kbdfans/kbd67/hotswap/config.h b/keyboards/kbdfans/kbd67/hotswap/config.h
index 2179acb5f801..4c0e0b794d81 100644
--- a/keyboards/kbdfans/kbd67/hotswap/config.h
+++ b/keyboards/kbdfans/kbd67/hotswap/config.h
@@ -134,8 +134,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h
index 5b50c415aedf..23b0a8a30cdb 100755
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h
@@ -37,9 +37,7 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
#ifdef RGB_MATRIX_ENABLE
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h
index 9960022a1394..a63a3ee61bc7 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h
@@ -36,9 +36,7 @@
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
#define USB_SUSPEND_WAKEUP_DELAY 5000
#define RGB_DI_PIN C7
diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h
index 42f5af8c2510..0877d04ccaed 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h
@@ -36,9 +36,7 @@
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
#define USB_SUSPEND_WAKEUP_DELAY 5000
#define RGB_DI_PIN C7
diff --git a/keyboards/kbdfans/kbd67/rev1/config.h b/keyboards/kbdfans/kbd67/rev1/config.h
index 04ea9c9f1b95..72aa27afccad 100644
--- a/keyboards/kbdfans/kbd67/rev1/config.h
+++ b/keyboards/kbdfans/kbd67/rev1/config.h
@@ -131,8 +131,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kbdfans/kbd6x/config.h b/keyboards/kbdfans/kbd6x/config.h
index 332898383e63..080bdb33b28f 100644
--- a/keyboards/kbdfans/kbd6x/config.h
+++ b/keyboards/kbdfans/kbd6x/config.h
@@ -118,6 +118,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/kbdfans/kbd75hs/config.h b/keyboards/kbdfans/kbd75hs/config.h
index e23e50636faa..bf14934d2bca 100644
--- a/keyboards/kbdfans/kbd75hs/config.h
+++ b/keyboards/kbdfans/kbd75hs/config.h
@@ -38,9 +38,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
#define FORCE_NKRO
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define LED_CAPS_LOCK_PIN C6
#define LED_PIN_ON_STATE 1
diff --git a/keyboards/kbdfans/kbd75rgb/config.h b/keyboards/kbdfans/kbd75rgb/config.h
index e49cf68b98e4..2499c25933bc 100644
--- a/keyboards/kbdfans/kbd75rgb/config.h
+++ b/keyboards/kbdfans/kbd75rgb/config.h
@@ -36,9 +36,7 @@
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
#define USB_SUSPEND_WAKEUP_DELAY 5000
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/kbdfans/kbd8x/config.h b/keyboards/kbdfans/kbd8x/config.h
index 67d155b556ca..b53a898a2714 100644
--- a/keyboards/kbdfans/kbd8x/config.h
+++ b/keyboards/kbdfans/kbd8x/config.h
@@ -84,5 +84,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kbdfans/kbd8x_mk2/config.h b/keyboards/kbdfans/kbd8x_mk2/config.h
index ea535b00fda2..010bba461799 100644
--- a/keyboards/kbdfans/kbd8x_mk2/config.h
+++ b/keyboards/kbdfans/kbd8x_mk2/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h
index f2137fcd1f68..a3e0a0237e01 100644
--- a/keyboards/kbdfans/kbdmini/config.h
+++ b/keyboards/kbdfans/kbdmini/config.h
@@ -91,7 +91,3 @@
#define DRIVER_COUNT 1
#define DRIVER_LED_TOTAL 52
#endif
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kbdfans/kbdpad/mk2/config.h b/keyboards/kbdfans/kbdpad/mk2/config.h
index e64aaa3379bf..99f3792d55bd 100644
--- a/keyboards/kbdfans/kbdpad/mk2/config.h
+++ b/keyboards/kbdfans/kbdpad/mk2/config.h
@@ -137,8 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kbdfans/niu_mini/config.h b/keyboards/kbdfans/niu_mini/config.h
index 96210cf3d0b5..82f23e3d5ccc 100644
--- a/keyboards/kbdfans/niu_mini/config.h
+++ b/keyboards/kbdfans/niu_mini/config.h
@@ -81,5 +81,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kbdfans/odin/soldered/config.h b/keyboards/kbdfans/odin/soldered/config.h
index 74e87aee2ea7..d51dd06e825d 100644
--- a/keyboards/kbdfans/odin/soldered/config.h
+++ b/keyboards/kbdfans/odin/soldered/config.h
@@ -35,8 +35,7 @@
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 15
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
#define RGB_DI_PIN B15
#ifdef RGB_DI_PIN
#define RGBLED_NUM 4
diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h
index c58aedd76f2a..c536ab83f07a 100644
--- a/keyboards/kc60/config.h
+++ b/keyboards/kc60/config.h
@@ -132,10 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kc60se/config.h b/keyboards/kc60se/config.h
index fc75f68ff05f..876aa891df7f 100644
--- a/keyboards/kc60se/config.h
+++ b/keyboards/kc60se/config.h
@@ -96,5 +96,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebio/bfo9000/config.h b/keyboards/keebio/bfo9000/config.h
index 7e9d4cec0bb6..7bb150d8cf83 100644
--- a/keyboards/keebio/bfo9000/config.h
+++ b/keyboards/keebio/bfo9000/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebio/bigswitchseat/config.h b/keyboards/keebio/bigswitchseat/config.h
index f5558ca27946..dbf8311c8daa 100644
--- a/keyboards/keebio/bigswitchseat/config.h
+++ b/keyboards/keebio/bigswitchseat/config.h
@@ -77,10 +77,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keebio/choconum/config.h b/keyboards/keebio/choconum/config.h
index 45dca6458513..dcd116534af0 100644
--- a/keyboards/keebio/choconum/config.h
+++ b/keyboards/keebio/choconum/config.h
@@ -92,10 +92,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h
index 1e6327aec06d..014eb1375961 100644
--- a/keyboards/keebio/ergodicity/config.h
+++ b/keyboards/keebio/ergodicity/config.h
@@ -120,8 +120,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/keebio/fourier/config.h b/keyboards/keebio/fourier/config.h
index 1ce0aac7ea24..faa3ef4004da 100644
--- a/keyboards/keebio/fourier/config.h
+++ b/keyboards/keebio/fourier/config.h
@@ -81,5 +81,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebio/nyquist/rev1/config.h b/keyboards/keebio/nyquist/rev1/config.h
index 774f49c90436..47622ba1e946 100644
--- a/keyboards/keebio/nyquist/rev1/config.h
+++ b/keyboards/keebio/nyquist/rev1/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebio/nyquist/rev2/config.h b/keyboards/keebio/nyquist/rev2/config.h
index d558c204d1bc..e47110b8a5ef 100644
--- a/keyboards/keebio/nyquist/rev2/config.h
+++ b/keyboards/keebio/nyquist/rev2/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebio/nyquist/rev3/config.h b/keyboards/keebio/nyquist/rev3/config.h
index d165815726f5..3536f5c629b9 100644
--- a/keyboards/keebio/nyquist/rev3/config.h
+++ b/keyboards/keebio/nyquist/rev3/config.h
@@ -76,5 +76,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebsforall/coarse60/config.h b/keyboards/keebsforall/coarse60/config.h
index ee37802145a1..7d14ea4cbdd3 100644
--- a/keyboards/keebsforall/coarse60/config.h
+++ b/keyboards/keebsforall/coarse60/config.h
@@ -96,8 +96,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
#define SLEEP_LED_GPT_DRIVER GPTD1
diff --git a/keyboards/keebsforall/freebird60/config.h b/keyboards/keebsforall/freebird60/config.h
index 81b468bb97af..5d9f98cacfb5 100644
--- a/keyboards/keebsforall/freebird60/config.h
+++ b/keyboards/keebsforall/freebird60/config.h
@@ -48,7 +48,3 @@ along with this program. If not, see .
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebsforall/freebirdtkl/config.h b/keyboards/keebsforall/freebirdtkl/config.h
index f9717d06d5bb..47c83ea5b771 100644
--- a/keyboards/keebsforall/freebirdtkl/config.h
+++ b/keyboards/keebsforall/freebirdtkl/config.h
@@ -50,6 +50,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/keebwerk/nano_slider/config.h b/keyboards/keebwerk/nano_slider/config.h
index 827923fea750..53b887692b4f 100644
--- a/keyboards/keebwerk/nano_slider/config.h
+++ b/keyboards/keebwerk/nano_slider/config.h
@@ -106,10 +106,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keebzdotnet/wazowski/config.h b/keyboards/keebzdotnet/wazowski/config.h
index 71db031caea9..fe8b5cbcd57f 100644
--- a/keyboards/keebzdotnet/wazowski/config.h
+++ b/keyboards/keebzdotnet/wazowski/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keybage/radpad/config.h b/keyboards/keybage/radpad/config.h
index 0d885ddea9bf..e0f4b763611f 100644
--- a/keyboards/keybage/radpad/config.h
+++ b/keyboards/keybage/radpad/config.h
@@ -52,10 +52,6 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 1
#define BOOTMAGIC_LITE_COLUMN 3
diff --git a/keyboards/keybee/keybee65/config.h b/keyboards/keybee/keybee65/config.h
index a6666b5d23f6..54f847a2dd85 100644
--- a/keyboards/keybee/keybee65/config.h
+++ b/keyboards/keybee/keybee65/config.h
@@ -62,6 +62,3 @@ along with this program. If not, see .
#define RGB_MATRIX_KEYPRESSES
#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/keyboardio/atreus/config.h b/keyboards/keyboardio/atreus/config.h
index fb3a48e58f04..74b56ceb7d76 100644
--- a/keyboards/keyboardio/atreus/config.h
+++ b/keyboards/keyboardio/atreus/config.h
@@ -77,5 +77,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/keycapsss/o4l_5x12/config.h b/keyboards/keycapsss/o4l_5x12/config.h
index e24275160fbd..4b7b86390652 100644
--- a/keyboards/keycapsss/o4l_5x12/config.h
+++ b/keyboards/keycapsss/o4l_5x12/config.h
@@ -115,10 +115,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keyhive/maypad/config.h b/keyboards/keyhive/maypad/config.h
index bb3ef2d64642..b85053888f01 100644
--- a/keyboards/keyhive/maypad/config.h
+++ b/keyboards/keyhive/maypad/config.h
@@ -135,8 +135,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/keyprez/bison/config.h b/keyboards/keyprez/bison/config.h
index a85e33c7e963..b98cbc1be140 100644
--- a/keyboards/keyprez/bison/config.h
+++ b/keyboards/keyprez/bison/config.h
@@ -149,10 +149,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keyprez/corgi/config.h b/keyboards/keyprez/corgi/config.h
index 7a304ab70783..a3ebf2747feb 100644
--- a/keyboards/keyprez/corgi/config.h
+++ b/keyboards/keyprez/corgi/config.h
@@ -57,7 +57,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/keyprez/rhino/config.h b/keyboards/keyprez/rhino/config.h
index b89be8fdc2b3..54077ac9393f 100644
--- a/keyboards/keyprez/rhino/config.h
+++ b/keyboards/keyprez/rhino/config.h
@@ -106,10 +106,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keyprez/unicorn/config.h b/keyboards/keyprez/unicorn/config.h
index fcfc6fe9264a..44eadb5bfbc2 100644
--- a/keyboards/keyprez/unicorn/config.h
+++ b/keyboards/keyprez/unicorn/config.h
@@ -132,10 +132,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kikkou/config.h b/keyboards/kikkou/config.h
index deedfd8382e3..586c8e9661a0 100644
--- a/keyboards/kikkou/config.h
+++ b/keyboards/kikkou/config.h
@@ -52,7 +52,3 @@ along with this program. If not, see .
/* disable print */
//#define NO_PRINT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kindakeyboards/conone65/config.h b/keyboards/kindakeyboards/conone65/config.h
index c29599caddf1..0a7127708ccd 100644
--- a/keyboards/kindakeyboards/conone65/config.h
+++ b/keyboards/kindakeyboards/conone65/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kinesis/config.h b/keyboards/kinesis/config.h
index b04d325903bd..63b296a5282f 100644
--- a/keyboards/kinesis/config.h
+++ b/keyboards/kinesis/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kira75/config.h b/keyboards/kira75/config.h
index 373c3e4f0b12..18d8b8fad9f2 100644
--- a/keyboards/kira75/config.h
+++ b/keyboards/kira75/config.h
@@ -112,5 +112,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kiwikeebs/macro/config.h b/keyboards/kiwikeebs/macro/config.h
index d9dcc3ba60ec..47349d0e09e2 100644
--- a/keyboards/kiwikeebs/macro/config.h
+++ b/keyboards/kiwikeebs/macro/config.h
@@ -102,7 +102,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kiwikeebs/macro_v2/config.h b/keyboards/kiwikeebs/macro_v2/config.h
index 9ecc4d6686b6..a962a9a82ad6 100644
--- a/keyboards/kiwikeebs/macro_v2/config.h
+++ b/keyboards/kiwikeebs/macro_v2/config.h
@@ -102,7 +102,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kiwikey/borderland/config.h b/keyboards/kiwikey/borderland/config.h
index 02a33926aadc..648c3a88de4a 100644
--- a/keyboards/kiwikey/borderland/config.h
+++ b/keyboards/kiwikey/borderland/config.h
@@ -117,10 +117,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kiwikey/kawii9/config.h b/keyboards/kiwikey/kawii9/config.h
index 33ce43f302ae..59adcd253e9f 100644
--- a/keyboards/kiwikey/kawii9/config.h
+++ b/keyboards/kiwikey/kawii9/config.h
@@ -128,10 +128,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kiwikey/wanderland/config.h b/keyboards/kiwikey/wanderland/config.h
index 546a03aa30dd..e0b9ba894651 100644
--- a/keyboards/kiwikey/wanderland/config.h
+++ b/keyboards/kiwikey/wanderland/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kkatano/bakeneko60/config.h b/keyboards/kkatano/bakeneko60/config.h
index 9b923552bb61..9e373686fdbd 100644
--- a/keyboards/kkatano/bakeneko60/config.h
+++ b/keyboards/kkatano/bakeneko60/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kkatano/bakeneko65/rev2/config.h b/keyboards/kkatano/bakeneko65/rev2/config.h
index 6639e823955a..7e70f549cdf0 100644
--- a/keyboards/kkatano/bakeneko65/rev2/config.h
+++ b/keyboards/kkatano/bakeneko65/rev2/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kkatano/bakeneko65/rev3/config.h b/keyboards/kkatano/bakeneko65/rev3/config.h
index 6001ce3159bc..9fa3e68ca054 100644
--- a/keyboards/kkatano/bakeneko65/rev3/config.h
+++ b/keyboards/kkatano/bakeneko65/rev3/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kkatano/bakeneko80/config.h b/keyboards/kkatano/bakeneko80/config.h
index da330c395f79..0e61db875b2a 100644
--- a/keyboards/kkatano/bakeneko80/config.h
+++ b/keyboards/kkatano/bakeneko80/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kkatano/wallaby/config.h b/keyboards/kkatano/wallaby/config.h
index 3c0d446418e9..00ba00ccac4e 100644
--- a/keyboards/kkatano/wallaby/config.h
+++ b/keyboards/kkatano/wallaby/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kkatano/yurei/config.h b/keyboards/kkatano/yurei/config.h
index 57877dc8faa3..14eae7f38716 100644
--- a/keyboards/kkatano/yurei/config.h
+++ b/keyboards/kkatano/yurei/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kmac/config.h b/keyboards/kmac/config.h
index 23cf0a04708a..3bc567333ed5 100644
--- a/keyboards/kmac/config.h
+++ b/keyboards/kmac/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kmac_pad/config.h b/keyboards/kmac_pad/config.h
index eb33a994b3da..189f2f9c0832 100644
--- a/keyboards/kmac_pad/config.h
+++ b/keyboards/kmac_pad/config.h
@@ -98,5 +98,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/knops/mini/config.h b/keyboards/knops/mini/config.h
index eca8b8b4a89d..8fb094fb9425 100644
--- a/keyboards/knops/mini/config.h
+++ b/keyboards/knops/mini/config.h
@@ -103,5 +103,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kona_classic/config.h b/keyboards/kona_classic/config.h
index c6dc3a031819..c5a783c81111 100644
--- a/keyboards/kona_classic/config.h
+++ b/keyboards/kona_classic/config.h
@@ -102,5 +102,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/kopibeng/xt65/config.h b/keyboards/kopibeng/xt65/config.h
index e39f832bdf40..e134e8b86470 100644
--- a/keyboards/kopibeng/xt65/config.h
+++ b/keyboards/kopibeng/xt65/config.h
@@ -100,8 +100,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kprepublic/bm16a/config.h b/keyboards/kprepublic/bm16a/config.h
index c38f74458e37..120232bb913c 100644
--- a/keyboards/kprepublic/bm16a/config.h
+++ b/keyboards/kprepublic/bm16a/config.h
@@ -133,8 +133,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h
index b4aa1a549cca..d8e7501b2250 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h
@@ -48,9 +48,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
//rgb light setting
#define RGBLIGHT_LIMIT_VAL 150
#define RGBLED_NUM 6
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
index 5e695aec57f7..4653db4fd6f9 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
@@ -50,9 +50,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
//rgb light setting
#define RGBLIGHT_LIMIT_VAL 150
#define RGBLED_NUM 6
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
index 27c3a6df5508..d40004f50214 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
@@ -48,9 +48,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
//rgb light setting
#define RGBLIGHT_LIMIT_VAL 150
#define RGBLED_NUM 6
diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/config.h b/keyboards/kprepublic/bm65hsrgb/rev1/config.h
index 1fbfab93683a..b428a788647e 100644
--- a/keyboards/kprepublic/bm65hsrgb/rev1/config.h
+++ b/keyboards/kprepublic/bm65hsrgb/rev1/config.h
@@ -113,10 +113,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/config.h b/keyboards/kprepublic/bm68hsrgb/rev1/config.h
index a779c97b7b5c..636ff1c785fa 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev1/config.h
+++ b/keyboards/kprepublic/bm68hsrgb/rev1/config.h
@@ -165,10 +165,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h
index 4faca73c0d21..900aa699cb2e 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h
+++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h
@@ -38,9 +38,7 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
+
#define RGBLIGHT_LIMIT_VAL 150
#define RGBLED_NUM 6
#define RGB_DI_PIN E2
diff --git a/keyboards/kprepublic/bm80hsrgb/config.h b/keyboards/kprepublic/bm80hsrgb/config.h
index f56daf948c23..7adc89720d33 100644
--- a/keyboards/kprepublic/bm80hsrgb/config.h
+++ b/keyboards/kprepublic/bm80hsrgb/config.h
@@ -136,7 +136,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kprepublic/bm980hsrgb/config.h b/keyboards/kprepublic/bm980hsrgb/config.h
index e4499a0b0504..01266e652cc2 100644
--- a/keyboards/kprepublic/bm980hsrgb/config.h
+++ b/keyboards/kprepublic/bm980hsrgb/config.h
@@ -127,10 +127,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kprepublic/cospad/config.h b/keyboards/kprepublic/cospad/config.h
index 47c4a1d9af90..bc53ef6206e8 100644
--- a/keyboards/kprepublic/cospad/config.h
+++ b/keyboards/kprepublic/cospad/config.h
@@ -141,10 +141,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ktec/daisy/config.h b/keyboards/ktec/daisy/config.h
index 3d504888ec4b..2079d172aa7f 100644
--- a/keyboards/ktec/daisy/config.h
+++ b/keyboards/ktec/daisy/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ktec/ergodone/config.h b/keyboards/ktec/ergodone/config.h
index db626ab8083e..ee51e4c05597 100644
--- a/keyboards/ktec/ergodone/config.h
+++ b/keyboards/ktec/ergodone/config.h
@@ -73,6 +73,5 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+
//#define DEBUG_MATRIX_SCAN_RATE
diff --git a/keyboards/kudox/columner/config.h b/keyboards/kudox/columner/config.h
index 1109331275d5..13a02bc80395 100644
--- a/keyboards/kudox/columner/config.h
+++ b/keyboards/kudox/columner/config.h
@@ -80,8 +80,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/kudox/rev1/config.h b/keyboards/kudox/rev1/config.h
index 8e994770f95a..de5dbbbe71c0 100644
--- a/keyboards/kudox/rev1/config.h
+++ b/keyboards/kudox/rev1/config.h
@@ -80,8 +80,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/kudox/rev2/config.h b/keyboards/kudox/rev2/config.h
index 81b1fb676fbf..c510926919c1 100644
--- a/keyboards/kudox/rev2/config.h
+++ b/keyboards/kudox/rev2/config.h
@@ -80,8 +80,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/kudox/rev3/config.h b/keyboards/kudox/rev3/config.h
index 9d24106f4cfb..969111d0c805 100644
--- a/keyboards/kudox/rev3/config.h
+++ b/keyboards/kudox/rev3/config.h
@@ -80,8 +80,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/kudox_full/rev1/config.h b/keyboards/kudox_full/rev1/config.h
index 46d680e442e8..bd47ed6b42d8 100644
--- a/keyboards/kudox_full/rev1/config.h
+++ b/keyboards/kudox_full/rev1/config.h
@@ -73,5 +73,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/kudox_game/rev1/config.h b/keyboards/kudox_game/rev1/config.h
index ab34f889dc5e..821a6af8bbb7 100644
--- a/keyboards/kudox_game/rev1/config.h
+++ b/keyboards/kudox_game/rev1/config.h
@@ -80,8 +80,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/kudox_game/rev2/config.h b/keyboards/kudox_game/rev2/config.h
index ea27d5efb80a..e1907bf29fd7 100644
--- a/keyboards/kudox_game/rev2/config.h
+++ b/keyboards/kudox_game/rev2/config.h
@@ -80,8 +80,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/ky01/config.h b/keyboards/ky01/config.h
index 22c211dacef5..e0b94622c64e 100644
--- a/keyboards/ky01/config.h
+++ b/keyboards/ky01/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/labyrinth75/config.h b/keyboards/labyrinth75/config.h
index cb95204885e8..afc77a8dd585 100644
--- a/keyboards/labyrinth75/config.h
+++ b/keyboards/labyrinth75/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 2
diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h
index 6b929f249dae..02d852260637 100644
--- a/keyboards/latincompass/latin17rgb/config.h
+++ b/keyboards/latincompass/latin17rgb/config.h
@@ -48,10 +48,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/latincompass/latin47ble/config.h b/keyboards/latincompass/latin47ble/config.h
index f9f94d0dbfeb..eb10693501f0 100644
--- a/keyboards/latincompass/latin47ble/config.h
+++ b/keyboards/latincompass/latin47ble/config.h
@@ -119,7 +119,5 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define VIA_HAS_BROKEN_KEYCODES
diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h
index cc7b83b9b886..fa4ea3928819 100644
--- a/keyboards/latincompass/latin60rgb/config.h
+++ b/keyboards/latincompass/latin60rgb/config.h
@@ -47,10 +47,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h
index 718d8aa26f63..9beebe0f87d2 100644
--- a/keyboards/latincompass/latin6rgb/config.h
+++ b/keyboards/latincompass/latin6rgb/config.h
@@ -49,10 +49,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/latincompass/latinpadble/config.h b/keyboards/latincompass/latinpadble/config.h
index da89046176d1..fc833a026913 100644
--- a/keyboards/latincompass/latinpadble/config.h
+++ b/keyboards/latincompass/latinpadble/config.h
@@ -26,10 +26,6 @@ along with this program. If not, see .*/
// #define NO_ACTION_LAYER
// #define NO_ACTION_TAPPING
// #define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-
/* key matrix size */
#define MATRIX_ROWS 5
diff --git a/keyboards/lattice60/config.h b/keyboards/lattice60/config.h
index 1346c73f4799..c1e067287b94 100644
--- a/keyboards/lattice60/config.h
+++ b/keyboards/lattice60/config.h
@@ -96,7 +96,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h
index 02eee1f3dab7..fc9e348a86c3 100644
--- a/keyboards/lets_split/rev1/config.h
+++ b/keyboards/lets_split/rev1/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h
index 37353b8b3d10..7d8dff4f2f04 100644
--- a/keyboards/lets_split/rev2/config.h
+++ b/keyboards/lets_split/rev2/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/lfkeyboards/lfk65_hs/config.h b/keyboards/lfkeyboards/lfk65_hs/config.h
index 0adc0b3f5603..18d6bbebe7db 100644
--- a/keyboards/lfkeyboards/lfk65_hs/config.h
+++ b/keyboards/lfkeyboards/lfk65_hs/config.h
@@ -80,5 +80,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/lfkeyboards/lfk78/config.h b/keyboards/lfkeyboards/lfk78/config.h
index fbb02e71ee08..1fab81a645fa 100644
--- a/keyboards/lfkeyboards/lfk78/config.h
+++ b/keyboards/lfkeyboards/lfk78/config.h
@@ -103,10 +103,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lfkeyboards/lfk87/config.h b/keyboards/lfkeyboards/lfk87/config.h
index 387c58851c57..af0a4b173b88 100644
--- a/keyboards/lfkeyboards/lfk87/config.h
+++ b/keyboards/lfkeyboards/lfk87/config.h
@@ -111,5 +111,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/lfkeyboards/lfkpad/config.h b/keyboards/lfkeyboards/lfkpad/config.h
index 972b0283b5a4..0ddb4b95b675 100644
--- a/keyboards/lfkeyboards/lfkpad/config.h
+++ b/keyboards/lfkeyboards/lfkpad/config.h
@@ -120,10 +120,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lfkeyboards/mini1800/config.h b/keyboards/lfkeyboards/mini1800/config.h
index 7c81c9f98cf8..e7b0b5112a7d 100644
--- a/keyboards/lfkeyboards/mini1800/config.h
+++ b/keyboards/lfkeyboards/mini1800/config.h
@@ -98,5 +98,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/lfkeyboards/smk65/revb/config.h b/keyboards/lfkeyboards/smk65/revb/config.h
index 924a04fd9efc..ecb183e8af07 100644
--- a/keyboards/lfkeyboards/smk65/revb/config.h
+++ b/keyboards/lfkeyboards/smk65/revb/config.h
@@ -107,8 +107,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/lfkeyboards/smk65/revf/config.h b/keyboards/lfkeyboards/smk65/revf/config.h
index d2cb5226ddfb..1b8295b152dd 100644
--- a/keyboards/lfkeyboards/smk65/revf/config.h
+++ b/keyboards/lfkeyboards/smk65/revf/config.h
@@ -125,10 +125,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
-//#define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lily58/config.h b/keyboards/lily58/config.h
index 0bdaa1f76e7e..57fc7fa7f972 100644
--- a/keyboards/lily58/config.h
+++ b/keyboards/lily58/config.h
@@ -25,13 +25,6 @@ along with this program. If not, see .
#define SERIAL_USE_MULTI_TRANSACTION
#endif
-#if !defined(NO_ACTION_MACRO)
- #define NO_ACTION_MACRO
-#endif
-#if !defined(NO_ACTION_FUNCTION)
- #define NO_ACTION_FUNCTION
-#endif
-
#define DIODE_DIRECTION COL2ROW
// Use the lily version to get the Lily58 logo instead of the qmk logo
diff --git a/keyboards/lily58/rev1/config.h b/keyboards/lily58/rev1/config.h
index 24dc41151fa7..6bfc7ffa7548 100644
--- a/keyboards/lily58/rev1/config.h
+++ b/keyboards/lily58/rev1/config.h
@@ -68,5 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/lime/rev1/config.h b/keyboards/lime/rev1/config.h
index 55c045dc67bf..547b88176103 100644
--- a/keyboards/lime/rev1/config.h
+++ b/keyboards/lime/rev1/config.h
@@ -58,8 +58,6 @@
#define USE_SERIAL
#define SOFT_SERIAL_PIN D2
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define SPLIT_USB_DETECT
#ifdef WPM_ENABLE
diff --git a/keyboards/linworks/fave84h/config.h b/keyboards/linworks/fave84h/config.h
index 4127c211fdc1..7df7a9ace071 100644
--- a/keyboards/linworks/fave84h/config.h
+++ b/keyboards/linworks/fave84h/config.h
@@ -110,6 +110,3 @@ along with this program. If not, see .
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/linworks/fave87h/config.h b/keyboards/linworks/fave87h/config.h
index 64f6fc4cba72..97d9bddba71d 100644
--- a/keyboards/linworks/fave87h/config.h
+++ b/keyboards/linworks/fave87h/config.h
@@ -98,6 +98,3 @@ along with this program. If not, see .
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/lizard_trick/tenkey_plusplus/config.h b/keyboards/lizard_trick/tenkey_plusplus/config.h
index d1087851cb52..88831948913a 100644
--- a/keyboards/lizard_trick/tenkey_plusplus/config.h
+++ b/keyboards/lizard_trick/tenkey_plusplus/config.h
@@ -150,10 +150,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lm_keyboard/lm60n/config.h b/keyboards/lm_keyboard/lm60n/config.h
index 3515f4432b35..171fa2fe5b3c 100644
--- a/keyboards/lm_keyboard/lm60n/config.h
+++ b/keyboards/lm_keyboard/lm60n/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lucid/alexa/config.h b/keyboards/lucid/alexa/config.h
index a4ac8b62d28d..19b5f4f19a6b 100644
--- a/keyboards/lucid/alexa/config.h
+++ b/keyboards/lucid/alexa/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/lucid/kbd8x_hs/config.h b/keyboards/lucid/kbd8x_hs/config.h
index a5d47ce73ec7..1e5cff8e7ff0 100644
--- a/keyboards/lucid/kbd8x_hs/config.h
+++ b/keyboards/lucid/kbd8x_hs/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/lucid/phantom_hs/config.h b/keyboards/lucid/phantom_hs/config.h
index 3e6fe45892d8..b94b345c1602 100644
--- a/keyboards/lucid/phantom_hs/config.h
+++ b/keyboards/lucid/phantom_hs/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/lucid/phantom_solder/config.h b/keyboards/lucid/phantom_solder/config.h
index af2537d386a6..2c78c4f5ff27 100644
--- a/keyboards/lucid/phantom_solder/config.h
+++ b/keyboards/lucid/phantom_solder/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/lucid/scarlet/config.h b/keyboards/lucid/scarlet/config.h
index 73c7272922cb..67c2fe7b07f8 100644
--- a/keyboards/lucid/scarlet/config.h
+++ b/keyboards/lucid/scarlet/config.h
@@ -98,5 +98,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/m10a/config.h b/keyboards/m10a/config.h
index 01f9d0d0a3a9..e09942f93a8b 100644
--- a/keyboards/m10a/config.h
+++ b/keyboards/m10a/config.h
@@ -70,5 +70,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/machine_industries/m4_a/config.h b/keyboards/machine_industries/m4_a/config.h
index 1ba3f4f7151e..f27cb8ae5b6e 100644
--- a/keyboards/machine_industries/m4_a/config.h
+++ b/keyboards/machine_industries/m4_a/config.h
@@ -129,10 +129,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/majistic/config.h b/keyboards/majistic/config.h
index 4ced5dd890f1..6e823ae3d64a 100644
--- a/keyboards/majistic/config.h
+++ b/keyboards/majistic/config.h
@@ -51,7 +51,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/malevolti/lyra/rev1/config.h b/keyboards/malevolti/lyra/rev1/config.h
index 4e006c2bdfce..18563f827082 100644
--- a/keyboards/malevolti/lyra/rev1/config.h
+++ b/keyboards/malevolti/lyra/rev1/config.h
@@ -44,6 +44,3 @@
/* communication between sides */
#define USE_SERIAL
#define SOFT_SERIAL_PIN D2
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/malevolti/superlyra/rev1/config.h b/keyboards/malevolti/superlyra/rev1/config.h
index 65c41392fa20..62c005ff9d38 100644
--- a/keyboards/malevolti/superlyra/rev1/config.h
+++ b/keyboards/malevolti/superlyra/rev1/config.h
@@ -39,6 +39,3 @@
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/manta60/config.h b/keyboards/manta60/config.h
index 8bb63a566e56..7c9a3b5ebedc 100644
--- a/keyboards/manta60/config.h
+++ b/keyboards/manta60/config.h
@@ -147,10 +147,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/manyboard/macro/config.h b/keyboards/manyboard/macro/config.h
index d7a950f2e6a1..63db714e63d5 100644
--- a/keyboards/manyboard/macro/config.h
+++ b/keyboards/manyboard/macro/config.h
@@ -48,6 +48,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/maple_computing/c39/config.h b/keyboards/maple_computing/c39/config.h
index 409023f1fa41..45c503846fa0 100755
--- a/keyboards/maple_computing/c39/config.h
+++ b/keyboards/maple_computing/c39/config.h
@@ -72,5 +72,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/maple_computing/ivy/config.h b/keyboards/maple_computing/ivy/config.h
index 2ccf3b8f6f3b..130f2e0b6150 100644
--- a/keyboards/maple_computing/ivy/config.h
+++ b/keyboards/maple_computing/ivy/config.h
@@ -62,5 +62,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/maple_computing/launchpad/config.h b/keyboards/maple_computing/launchpad/config.h
index 327d67016bf1..901c63c93b44 100644
--- a/keyboards/maple_computing/launchpad/config.h
+++ b/keyboards/maple_computing/launchpad/config.h
@@ -58,8 +58,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#ifdef SUBPROJECT_rev1
#include "rev1/config.h"
diff --git a/keyboards/maple_computing/minidox/config.h b/keyboards/maple_computing/minidox/config.h
index 2c71378961bc..613e45977c32 100644
--- a/keyboards/maple_computing/minidox/config.h
+++ b/keyboards/maple_computing/minidox/config.h
@@ -57,5 +57,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/maple_computing/the_ruler/config.h b/keyboards/maple_computing/the_ruler/config.h
index bcb7441140c9..ec9687cc0b6d 100644
--- a/keyboards/maple_computing/the_ruler/config.h
+++ b/keyboards/maple_computing/the_ruler/config.h
@@ -96,8 +96,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_DI_PIN E6 // The pin your RGB strip is wired to
#define RGBLED_NUM 1 // Number of LEDs
diff --git a/keyboards/marksard/leftover30/config.h b/keyboards/marksard/leftover30/config.h
index 42c6c6287275..5fc1b156a2d6 100644
--- a/keyboards/marksard/leftover30/config.h
+++ b/keyboards/marksard/leftover30/config.h
@@ -132,7 +132,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/marksard/treadstone48/rev1/config.h b/keyboards/marksard/treadstone48/rev1/config.h
index ad9de636d0ec..68d119115671 100644
--- a/keyboards/marksard/treadstone48/rev1/config.h
+++ b/keyboards/marksard/treadstone48/rev1/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/marksard/treadstone48/rev2/config.h b/keyboards/marksard/treadstone48/rev2/config.h
index 6df1467d8cd8..e0353925be25 100644
--- a/keyboards/marksard/treadstone48/rev2/config.h
+++ b/keyboards/marksard/treadstone48/rev2/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/massdrop/alt/config.h b/keyboards/massdrop/alt/config.h
index df3cd891b642..2ab9c26d2c20 100644
--- a/keyboards/massdrop/alt/config.h
+++ b/keyboards/massdrop/alt/config.h
@@ -128,8 +128,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_LED_PROCESS_LIMIT 15
diff --git a/keyboards/massdrop/ctrl/config.h b/keyboards/massdrop/ctrl/config.h
index 6c0678c5ed8d..15abcaa67417 100644
--- a/keyboards/massdrop/ctrl/config.h
+++ b/keyboards/massdrop/ctrl/config.h
@@ -127,8 +127,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_LED_PROCESS_LIMIT 15
diff --git a/keyboards/matchstickworks/southpad/config.h b/keyboards/matchstickworks/southpad/config.h
index 247084a862b0..8831599828ba 100644
--- a/keyboards/matchstickworks/southpad/config.h
+++ b/keyboards/matchstickworks/southpad/config.h
@@ -92,8 +92,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/matthewdias/m3n3van/config.h b/keyboards/matthewdias/m3n3van/config.h
index 15f62cecfd5c..cef9d8d70a40 100644
--- a/keyboards/matthewdias/m3n3van/config.h
+++ b/keyboards/matthewdias/m3n3van/config.h
@@ -59,7 +59,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/matthewdias/minim/config.h b/keyboards/matthewdias/minim/config.h
index e13d2b798f47..9f31ba31cfc9 100644
--- a/keyboards/matthewdias/minim/config.h
+++ b/keyboards/matthewdias/minim/config.h
@@ -57,7 +57,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/matthewdias/model_v/config.h b/keyboards/matthewdias/model_v/config.h
index 847599a369c2..d1c5dcd81d5b 100644
--- a/keyboards/matthewdias/model_v/config.h
+++ b/keyboards/matthewdias/model_v/config.h
@@ -56,7 +56,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/matthewdias/txuu/config.h b/keyboards/matthewdias/txuu/config.h
index 202777a965ef..f81c300a13c7 100644
--- a/keyboards/matthewdias/txuu/config.h
+++ b/keyboards/matthewdias/txuu/config.h
@@ -57,7 +57,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h
index a45c3e442dae..7a4b00ccada8 100644
--- a/keyboards/maxipad/config.h
+++ b/keyboards/maxipad/config.h
@@ -53,8 +53,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/maxr1998/pulse4k/config.h b/keyboards/maxr1998/pulse4k/config.h
index 75ff88f308fb..4b9c60aac27d 100644
--- a/keyboards/maxr1998/pulse4k/config.h
+++ b/keyboards/maxr1998/pulse4k/config.h
@@ -70,5 +70,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/mb44/config.h b/keyboards/mb44/config.h
index 013efa85704a..daafe52b412e 100644
--- a/keyboards/mb44/config.h
+++ b/keyboards/mb44/config.h
@@ -53,9 +53,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/mc_76k/config.h b/keyboards/mc_76k/config.h
index a1d28185f180..cc7ac306f443 100644
--- a/keyboards/mc_76k/config.h
+++ b/keyboards/mc_76k/config.h
@@ -95,7 +95,3 @@ along with this program. If not, see .
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/mechkeys/mk60/config.h b/keyboards/mechkeys/mk60/config.h
index a841152f4f8f..680c498ef463 100644
--- a/keyboards/mechkeys/mk60/config.h
+++ b/keyboards/mechkeys/mk60/config.h
@@ -135,8 +135,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/mechlovin/hannah910/config.h b/keyboards/mechlovin/hannah910/config.h
index 7e0b9dd30c0b..cc2ac81bc517 100644
--- a/keyboards/mechlovin/hannah910/config.h
+++ b/keyboards/mechlovin/hannah910/config.h
@@ -106,8 +106,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/mechlovin/jay60/config.h b/keyboards/mechlovin/jay60/config.h
index 0b9770e5e232..521b8ae0dbf2 100644
--- a/keyboards/mechlovin/jay60/config.h
+++ b/keyboards/mechlovin/jay60/config.h
@@ -138,10 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mechwild/bde/rev2/config.h b/keyboards/mechwild/bde/rev2/config.h
index ca14cf784d25..0f290ecc339f 100644
--- a/keyboards/mechwild/bde/rev2/config.h
+++ b/keyboards/mechwild/bde/rev2/config.h
@@ -68,7 +68,3 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
\ No newline at end of file
diff --git a/keyboards/mechwild/murphpad/config.h b/keyboards/mechwild/murphpad/config.h
index 0887025ad843..3995546e8e02 100644
--- a/keyboards/mechwild/murphpad/config.h
+++ b/keyboards/mechwild/murphpad/config.h
@@ -85,10 +85,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
diff --git a/keyboards/mechwild/obe/config.h b/keyboards/mechwild/obe/config.h
index 03ff96878755..1b7ed824aad4 100644
--- a/keyboards/mechwild/obe/config.h
+++ b/keyboards/mechwild/obe/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 5
#define BOOTMAGIC_LITE_COLUMN 4
diff --git a/keyboards/mechwild/waka60/config.h b/keyboards/mechwild/waka60/config.h
index 636e13de38e8..e3fc719b8f1a 100644
--- a/keyboards/mechwild/waka60/config.h
+++ b/keyboards/mechwild/waka60/config.h
@@ -134,10 +134,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h
index 8f8377941fa2..0e98030e25cb 100755
--- a/keyboards/melgeek/mach80/config.h
+++ b/keyboards/melgeek/mach80/config.h
@@ -32,10 +32,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h
index e3097b9cf7fa..0b5bd9ff4878 100644
--- a/keyboards/melgeek/mj61/config.h
+++ b/keyboards/melgeek/mj61/config.h
@@ -32,10 +32,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h
index db80371a2b2a..ddd953e1deef 100644
--- a/keyboards/melgeek/mj63/config.h
+++ b/keyboards/melgeek/mj63/config.h
@@ -32,10 +32,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h
index a249be3feaa9..684c48720b5b 100644
--- a/keyboards/melgeek/mj64/config.h
+++ b/keyboards/melgeek/mj64/config.h
@@ -32,10 +32,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h
index 70a12d925574..4cf4f3f2330d 100644
--- a/keyboards/melgeek/mj65/config.h
+++ b/keyboards/melgeek/mj65/config.h
@@ -32,10 +32,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h
index 15ea1a58b440..ee441be0e16d 100755
--- a/keyboards/melgeek/mojo68/config.h
+++ b/keyboards/melgeek/mojo68/config.h
@@ -32,10 +32,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h
index 9e2d1080d1fc..2db335dafbbe 100644
--- a/keyboards/melgeek/mojo75/config.h
+++ b/keyboards/melgeek/mojo75/config.h
@@ -32,10 +32,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h
index 2df25bf50189..0f294c9e00b2 100644
--- a/keyboards/melgeek/z70ultra/config.h
+++ b/keyboards/melgeek/z70ultra/config.h
@@ -31,10 +31,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/meme/config.h b/keyboards/meme/config.h
index 0757846f5728..58bc794ee81b 100644
--- a/keyboards/meme/config.h
+++ b/keyboards/meme/config.h
@@ -105,5 +105,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/meow65/config.h b/keyboards/meow65/config.h
index 54af798314ec..20f725ee30bf 100644
--- a/keyboards/meow65/config.h
+++ b/keyboards/meow65/config.h
@@ -138,10 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mesa/mesa_tkl/config.h b/keyboards/mesa/mesa_tkl/config.h
index 23da260bcf68..348d95a809f8 100644
--- a/keyboards/mesa/mesa_tkl/config.h
+++ b/keyboards/mesa/mesa_tkl/config.h
@@ -54,7 +54,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/meson/config.h b/keyboards/meson/config.h
index e777320487c5..3abeb479a259 100644
--- a/keyboards/meson/config.h
+++ b/keyboards/meson/config.h
@@ -109,9 +109,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/mikeneko65/rev3/config.h b/keyboards/mikeneko65/rev3/config.h
index dad2532012e0..33415392f863 100644
--- a/keyboards/mikeneko65/rev3/config.h
+++ b/keyboards/mikeneko65/rev3/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mikeneko65/rev4/config.h b/keyboards/mikeneko65/rev4/config.h
index 2e7efaf8db89..b6b62b880ce5 100644
--- a/keyboards/mikeneko65/rev4/config.h
+++ b/keyboards/mikeneko65/rev4/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h
index 09429b4d198a..57a832dc0831 100644
--- a/keyboards/miller/gm862/config.h
+++ b/keyboards/miller/gm862/config.h
@@ -28,10 +28,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
#ifdef RGB_MATRIX_ENABLE
diff --git a/keyboards/millipad/config.h b/keyboards/millipad/config.h
index c15d433a4c89..cfc91a2a1611 100644
--- a/keyboards/millipad/config.h
+++ b/keyboards/millipad/config.h
@@ -77,12 +77,6 @@ along with this program. If not, see .
*/
#define FORCE_NKRO
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
@@ -91,4 +85,4 @@ along with this program. If not, see .
#define ENCODERS_PAD_A { D3 }
#define ENCODERS_PAD_B { D2 }
-#define ENCODER_RESOLUTION 4
\ No newline at end of file
+#define ENCODER_RESOLUTION 4
diff --git a/keyboards/mini_elixivy/config.h b/keyboards/mini_elixivy/config.h
index e0853c025106..863934df6b0f 100644
--- a/keyboards/mini_elixivy/config.h
+++ b/keyboards/mini_elixivy/config.h
@@ -99,10 +99,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
-//#define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mini_ten_key_plus/config.h b/keyboards/mini_ten_key_plus/config.h
index 92ac355fe881..c8a44356f2fe 100644
--- a/keyboards/mini_ten_key_plus/config.h
+++ b/keyboards/mini_ten_key_plus/config.h
@@ -99,10 +99,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/miniaxe/config.h b/keyboards/miniaxe/config.h
index b9295bad9fc3..3c0ddf9074b6 100644
--- a/keyboards/miniaxe/config.h
+++ b/keyboards/miniaxe/config.h
@@ -122,8 +122,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h
index b421349d868e..ee44ae446bf8 100644
--- a/keyboards/mint60/config.h
+++ b/keyboards/mint60/config.h
@@ -121,5 +121,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/mitosis/config.h b/keyboards/mitosis/config.h
index 2c72eed5f2d4..5c2a0b965744 100644
--- a/keyboards/mitosis/config.h
+++ b/keyboards/mitosis/config.h
@@ -54,5 +54,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/miuni32/config.h b/keyboards/miuni32/config.h
index c25dfcaf99d0..cf8b875b2f2b 100644
--- a/keyboards/miuni32/config.h
+++ b/keyboards/miuni32/config.h
@@ -100,8 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_DI_PIN D0 // The pin your RGB strip is wired to
#define RGBLED_NUM 17 // Number of LEDs
diff --git a/keyboards/mlego/m48/config.h b/keyboards/mlego/m48/config.h
index 6be2373d8f16..d1c4da939729 100644
--- a/keyboards/mlego/m48/config.h
+++ b/keyboards/mlego/m48/config.h
@@ -31,7 +31,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/mlego/m60/config.h b/keyboards/mlego/m60/config.h
index 07698f7539ec..18c36671a98e 100644
--- a/keyboards/mlego/m60/config.h
+++ b/keyboards/mlego/m60/config.h
@@ -31,7 +31,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/mlego/m60_split/config.h b/keyboards/mlego/m60_split/config.h
index 6750d4d40b2a..7c19f9171d79 100644
--- a/keyboards/mlego/m60_split/config.h
+++ b/keyboards/mlego/m60_split/config.h
@@ -31,7 +31,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/mntre/config.h b/keyboards/mntre/config.h
index 9ee3d3f27270..af5f8107411a 100644
--- a/keyboards/mntre/config.h
+++ b/keyboards/mntre/config.h
@@ -92,10 +92,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mode/m65ha_alpha/config.h b/keyboards/mode/m65ha_alpha/config.h
index dc921fb33508..cdeffe6fa3bd 100644
--- a/keyboards/mode/m65ha_alpha/config.h
+++ b/keyboards/mode/m65ha_alpha/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/mode/m65hi_alpha/config.h b/keyboards/mode/m65hi_alpha/config.h
index 1a048e94d2be..daacee56ce66 100644
--- a/keyboards/mode/m65hi_alpha/config.h
+++ b/keyboards/mode/m65hi_alpha/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/mode/m65s/config.h b/keyboards/mode/m65s/config.h
index e2e553bca99b..9cd3bfcb354d 100644
--- a/keyboards/mode/m65s/config.h
+++ b/keyboards/mode/m65s/config.h
@@ -69,7 +69,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define TAP_CODE_DELAY 50
diff --git a/keyboards/mode/m75h/config.h b/keyboards/mode/m75h/config.h
index 980ebc5b6600..6618d2bdbd38 100644
--- a/keyboards/mode/m75h/config.h
+++ b/keyboards/mode/m75h/config.h
@@ -67,8 +67,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define TAP_CODE_DELAY 50
diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h
index 8ac31b069ea0..9e902a158545 100644
--- a/keyboards/mode/m75s/config.h
+++ b/keyboards/mode/m75s/config.h
@@ -67,8 +67,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define TAP_CODE_DELAY 50
diff --git a/keyboards/mode/m80v1/config.h b/keyboards/mode/m80v1/config.h
index d0c61d11933b..a0d39774e6cc 100644
--- a/keyboards/mode/m80v1/config.h
+++ b/keyboards/mode/m80v1/config.h
@@ -97,5 +97,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/molecule/config.h b/keyboards/molecule/config.h
index e3bc5ad342b8..419554ed2c46 100755
--- a/keyboards/molecule/config.h
+++ b/keyboards/molecule/config.h
@@ -150,10 +150,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/momoka_ergo/config.h b/keyboards/momoka_ergo/config.h
index 3c22e3fc845a..e8fe01f504b7 100644
--- a/keyboards/momoka_ergo/config.h
+++ b/keyboards/momoka_ergo/config.h
@@ -113,10 +113,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/monarch/config.h b/keyboards/monarch/config.h
index 6822b2f789a7..90131c593174 100644
--- a/keyboards/monarch/config.h
+++ b/keyboards/monarch/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h
index d6686425c4f4..bd06c5006d74 100644
--- a/keyboards/moonlander/config.h
+++ b/keyboards/moonlander/config.h
@@ -77,8 +77,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110111
diff --git a/keyboards/morizon/config.h b/keyboards/morizon/config.h
index bf9e1b9a3518..4b419283cbf4 100644
--- a/keyboards/morizon/config.h
+++ b/keyboards/morizon/config.h
@@ -40,7 +40,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/mountainblocks/mb17/config.h b/keyboards/mountainblocks/mb17/config.h
index aef58dc5da46..9667d9e55109 100644
--- a/keyboards/mountainblocks/mb17/config.h
+++ b/keyboards/mountainblocks/mb17/config.h
@@ -90,8 +90,3 @@ along with this program. If not, see .
*
*/
//#define FORCE_NKRO
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/mschwingen/modelm/config.h b/keyboards/mschwingen/modelm/config.h
index 2b42bb38ed76..57ac1c089b78 100644
--- a/keyboards/mschwingen/modelm/config.h
+++ b/keyboards/mschwingen/modelm/config.h
@@ -57,8 +57,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
//#define DEBUG_MATRIX_SCAN_RATE
#define DYNAMIC_MACRO_NO_NESTING
diff --git a/keyboards/mt40/config.h b/keyboards/mt40/config.h
index a48d758e7f57..6626b24f3ad0 100644
--- a/keyboards/mt40/config.h
+++ b/keyboards/mt40/config.h
@@ -114,5 +114,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/mtbkeys/mtb60/hotswap/config.h b/keyboards/mtbkeys/mtb60/hotswap/config.h
index 6cfc31224388..c235686cc808 100644
--- a/keyboards/mtbkeys/mtb60/hotswap/config.h
+++ b/keyboards/mtbkeys/mtb60/hotswap/config.h
@@ -70,10 +70,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mtbkeys/mtb60/solder/config.h b/keyboards/mtbkeys/mtb60/solder/config.h
index 02037e83df3e..7b0909492d65 100644
--- a/keyboards/mtbkeys/mtb60/solder/config.h
+++ b/keyboards/mtbkeys/mtb60/solder/config.h
@@ -70,10 +70,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/murcielago/rev1/config.h b/keyboards/murcielago/rev1/config.h
index 3f71dbca8d37..2851ae884b8d 100644
--- a/keyboards/murcielago/rev1/config.h
+++ b/keyboards/murcielago/rev1/config.h
@@ -87,10 +87,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/nacly/splitreus62/config.h b/keyboards/nacly/splitreus62/config.h
index d8e67661bd58..51013ee9679b 100644
--- a/keyboards/nacly/splitreus62/config.h
+++ b/keyboards/nacly/splitreus62/config.h
@@ -72,5 +72,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/nacly/ua62/config.h b/keyboards/nacly/ua62/config.h
index 492bba93e8ff..803bddc2945e 100644
--- a/keyboards/nacly/ua62/config.h
+++ b/keyboards/nacly/ua62/config.h
@@ -137,8 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/nemui/config.h b/keyboards/nemui/config.h
index e2c3827a5f91..32b757d610c5 100644
--- a/keyboards/nemui/config.h
+++ b/keyboards/nemui/config.h
@@ -57,5 +57,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/nibiria/stream15/config.h b/keyboards/nibiria/stream15/config.h
index a36ee9146e6f..824357b475ae 100644
--- a/keyboards/nibiria/stream15/config.h
+++ b/keyboards/nibiria/stream15/config.h
@@ -60,5 +60,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/nightingale_studios/hailey/config.h b/keyboards/nightingale_studios/hailey/config.h
index e3eb062c3bd4..f3331b3f1c7f 100644
--- a/keyboards/nightingale_studios/hailey/config.h
+++ b/keyboards/nightingale_studios/hailey/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/nightly_boards/alter/rev1/config.h b/keyboards/nightly_boards/alter/rev1/config.h
index 4f9bade717e4..f42c49eb5ce2 100644
--- a/keyboards/nightly_boards/alter/rev1/config.h
+++ b/keyboards/nightly_boards/alter/rev1/config.h
@@ -90,10 +90,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/nightly_boards/n2/config.h b/keyboards/nightly_boards/n2/config.h
index 5ffa15f08485..e19b26e76b23 100644
--- a/keyboards/nightly_boards/n2/config.h
+++ b/keyboards/nightly_boards/n2/config.h
@@ -86,8 +86,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/nightly_boards/n60_s/config.h b/keyboards/nightly_boards/n60_s/config.h
index 34656fa134bc..2f50f4927332 100644
--- a/keyboards/nightly_boards/n60_s/config.h
+++ b/keyboards/nightly_boards/n60_s/config.h
@@ -94,6 +94,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/nightly_boards/n87/config.h b/keyboards/nightly_boards/n87/config.h
index 543399e71a0a..0bb8e620462a 100644
--- a/keyboards/nightly_boards/n87/config.h
+++ b/keyboards/nightly_boards/n87/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/nightly_boards/n9/config.h b/keyboards/nightly_boards/n9/config.h
index b8b29099ca13..153d02c245c5 100644
--- a/keyboards/nightly_boards/n9/config.h
+++ b/keyboards/nightly_boards/n9/config.h
@@ -86,8 +86,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/nightmare/config.h b/keyboards/nightmare/config.h
index 14477ee4de99..ac4fe163e639 100644
--- a/keyboards/nightmare/config.h
+++ b/keyboards/nightmare/config.h
@@ -136,8 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/novelkeys/novelpad/config.h b/keyboards/novelkeys/novelpad/config.h
index a7947220ffa5..2b9663896603 100755
--- a/keyboards/novelkeys/novelpad/config.h
+++ b/keyboards/novelkeys/novelpad/config.h
@@ -136,8 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/noxary/220/config.h b/keyboards/noxary/220/config.h
index 522d1beca855..05fe1be559ee 100644
--- a/keyboards/noxary/220/config.h
+++ b/keyboards/noxary/220/config.h
@@ -109,8 +109,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/noxary/260/config.h b/keyboards/noxary/260/config.h
index 2a9ac07bdb44..29818862da94 100644
--- a/keyboards/noxary/260/config.h
+++ b/keyboards/noxary/260/config.h
@@ -142,8 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/noxary/268_2/config.h b/keyboards/noxary/268_2/config.h
index c8fbdd3bf4e0..b447a37f5742 100644
--- a/keyboards/noxary/268_2/config.h
+++ b/keyboards/noxary/268_2/config.h
@@ -110,8 +110,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/noxary/280/config.h b/keyboards/noxary/280/config.h
index 15de70285972..3147d12528ef 100644
--- a/keyboards/noxary/280/config.h
+++ b/keyboards/noxary/280/config.h
@@ -109,8 +109,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/noxary/378/config.h b/keyboards/noxary/378/config.h
index a159af02fd36..fa08601875c9 100644
--- a/keyboards/noxary/378/config.h
+++ b/keyboards/noxary/378/config.h
@@ -67,5 +67,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/noxary/valhalla/config.h b/keyboards/noxary/valhalla/config.h
index 4e87afecb9a6..abce175dce37 100644
--- a/keyboards/noxary/valhalla/config.h
+++ b/keyboards/noxary/valhalla/config.h
@@ -67,5 +67,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/noxary/vulcan/config.h b/keyboards/noxary/vulcan/config.h
index 6281cb07d1c7..e478071110a0 100644
--- a/keyboards/noxary/vulcan/config.h
+++ b/keyboards/noxary/vulcan/config.h
@@ -99,8 +99,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/noxary/x268/config.h b/keyboards/noxary/x268/config.h
index 5f33c18e812f..3c4965a6ccd5 100644
--- a/keyboards/noxary/x268/config.h
+++ b/keyboards/noxary/x268/config.h
@@ -117,8 +117,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/numatreus/config.h b/keyboards/numatreus/config.h
index c22c67ed8c29..b2c147fcc172 100644
--- a/keyboards/numatreus/config.h
+++ b/keyboards/numatreus/config.h
@@ -95,5 +95,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/oddball/config.h b/keyboards/oddball/config.h
index 4bc9c7997c2c..cfb134c4e35e 100644
--- a/keyboards/oddball/config.h
+++ b/keyboards/oddball/config.h
@@ -45,10 +45,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* optical sensor settings */
#define SCROLL_DIVIDER 12
#define CPI_1 2000
diff --git a/keyboards/orthodox/rev1/config.h b/keyboards/orthodox/rev1/config.h
index 1dadae388d25..db45e2d75dd4 100644
--- a/keyboards/orthodox/rev1/config.h
+++ b/keyboards/orthodox/rev1/config.h
@@ -87,5 +87,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/orthodox/rev3/config.h b/keyboards/orthodox/rev3/config.h
index ae51281647a8..678a3603f117 100644
--- a/keyboards/orthodox/rev3/config.h
+++ b/keyboards/orthodox/rev3/config.h
@@ -91,5 +91,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/orthodox/rev3_teensy/config.h b/keyboards/orthodox/rev3_teensy/config.h
index a35c276d9502..d21d50e57913 100644
--- a/keyboards/orthodox/rev3_teensy/config.h
+++ b/keyboards/orthodox/rev3_teensy/config.h
@@ -85,5 +85,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/paprikman/albacore/config.h b/keyboards/paprikman/albacore/config.h
index 3fa81b160faf..37a211726e5a 100644
--- a/keyboards/paprikman/albacore/config.h
+++ b/keyboards/paprikman/albacore/config.h
@@ -71,10 +71,6 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Set lower left modifier key as a bootmagic key */
#define BOOTMAGIC_LITE_ROW 1
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/parallel/parallel_65/hotswap/config.h b/keyboards/parallel/parallel_65/hotswap/config.h
index 26734936edba..ae730c3c9f58 100644
--- a/keyboards/parallel/parallel_65/hotswap/config.h
+++ b/keyboards/parallel/parallel_65/hotswap/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/parallel/parallel_65/soldered/config.h b/keyboards/parallel/parallel_65/soldered/config.h
index a5eace0be291..2ff2492ad48a 100644
--- a/keyboards/parallel/parallel_65/soldered/config.h
+++ b/keyboards/parallel/parallel_65/soldered/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/pdxkbc/config.h b/keyboards/pdxkbc/config.h
index dad039633010..ce6c79bc3250 100644
--- a/keyboards/pdxkbc/config.h
+++ b/keyboards/pdxkbc/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/pearl/config.h b/keyboards/pearl/config.h
index 09e0c8e1e414..2e9a2faf1db1 100644
--- a/keyboards/pearl/config.h
+++ b/keyboards/pearl/config.h
@@ -44,6 +44,3 @@ along with this program. If not, see .
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/peranekofactory/tone/rev1/config.h b/keyboards/peranekofactory/tone/rev1/config.h
index 54a59ed5515c..38bfd6259c38 100644
--- a/keyboards/peranekofactory/tone/rev1/config.h
+++ b/keyboards/peranekofactory/tone/rev1/config.h
@@ -150,10 +150,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/peranekofactory/tone/rev2/config.h b/keyboards/peranekofactory/tone/rev2/config.h
index 54a59ed5515c..38bfd6259c38 100644
--- a/keyboards/peranekofactory/tone/rev2/config.h
+++ b/keyboards/peranekofactory/tone/rev2/config.h
@@ -150,10 +150,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/phantom/config.h b/keyboards/phantom/config.h
index a948987d18c5..b30adef9dd31 100644
--- a/keyboards/phantom/config.h
+++ b/keyboards/phantom/config.h
@@ -135,10 +135,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/pico/65keys/config.h b/keyboards/pico/65keys/config.h
index 981418263fa8..e0cc6ea5668c 100644
--- a/keyboards/pico/65keys/config.h
+++ b/keyboards/pico/65keys/config.h
@@ -80,8 +80,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/pico/70keys/config.h b/keyboards/pico/70keys/config.h
index 2d94f4d5f7a1..b2d07c969154 100644
--- a/keyboards/pico/70keys/config.h
+++ b/keyboards/pico/70keys/config.h
@@ -80,8 +80,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
diff --git a/keyboards/pinky/3/config.h b/keyboards/pinky/3/config.h
index c8d576388c9f..78192bc19e51 100644
--- a/keyboards/pinky/3/config.h
+++ b/keyboards/pinky/3/config.h
@@ -107,8 +107,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/pinky/4/config.h b/keyboards/pinky/4/config.h
index d0d46f1926ce..f5a90240456e 100644
--- a/keyboards/pinky/4/config.h
+++ b/keyboards/pinky/4/config.h
@@ -107,8 +107,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/pisces/config.h b/keyboards/pisces/config.h
index 7c6c65f24745..163edb8727a3 100644
--- a/keyboards/pisces/config.h
+++ b/keyboards/pisces/config.h
@@ -64,7 +64,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/pizzakeyboards/pizza65/config.h b/keyboards/pizzakeyboards/pizza65/config.h
index 039fc6826379..505a5736308c 100644
--- a/keyboards/pizzakeyboards/pizza65/config.h
+++ b/keyboards/pizzakeyboards/pizza65/config.h
@@ -49,10 +49,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h
index a86359327a6f..8fb9dda32a1e 100644
--- a/keyboards/planck/config.h
+++ b/keyboards/planck/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h
index 537c2150968a..d948fb5808e3 100644
--- a/keyboards/planck/ez/config.h
+++ b/keyboards/planck/ez/config.h
@@ -106,8 +106,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// #define WS2812_LED_N 2
// #define RGBLED_NUM WS2812_LED_N
diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h
index aa70d46a8e69..778fa12fcc41 100644
--- a/keyboards/planck/rev6/config.h
+++ b/keyboards/planck/rev6/config.h
@@ -102,9 +102,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
/*
* WS2812 Underglow Matrix options
diff --git a/keyboards/planck/rev6_drop/config.h b/keyboards/planck/rev6_drop/config.h
index c1baa34b721e..f41d46b889bd 100644
--- a/keyboards/planck/rev6_drop/config.h
+++ b/keyboards/planck/rev6_drop/config.h
@@ -109,8 +109,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/*
* WS2812 Underglow Matrix options
diff --git a/keyboards/ploopyco/mouse/config.h b/keyboards/ploopyco/mouse/config.h
index df1ea1297b36..98fc81bb05e5 100644
--- a/keyboards/ploopyco/mouse/config.h
+++ b/keyboards/ploopyco/mouse/config.h
@@ -63,8 +63,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ploopyco/trackball/config.h b/keyboards/ploopyco/trackball/config.h
index 4275e9d11982..dd068e4838ff 100644
--- a/keyboards/ploopyco/trackball/config.h
+++ b/keyboards/ploopyco/trackball/config.h
@@ -41,8 +41,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/keyboards/ploopyco/trackball_mini/config.h b/keyboards/ploopyco/trackball_mini/config.h
index 731e6fbc9732..9c53f1f501a8 100644
--- a/keyboards/ploopyco/trackball_mini/config.h
+++ b/keyboards/ploopyco/trackball_mini/config.h
@@ -42,8 +42,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/keyboards/ploopyco/trackball_nano/config.h b/keyboards/ploopyco/trackball_nano/config.h
index 98a2c662fa9e..985ddc09ba35 100644
--- a/keyboards/ploopyco/trackball_nano/config.h
+++ b/keyboards/ploopyco/trackball_nano/config.h
@@ -38,8 +38,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/keyboards/pluckey/config.h b/keyboards/pluckey/config.h
index 295fe93a8536..f98318437b65 100644
--- a/keyboards/pluckey/config.h
+++ b/keyboards/pluckey/config.h
@@ -81,10 +81,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/plume/plume65/config.h b/keyboards/plume/plume65/config.h
index 5035ee1ead57..b7d91e102369 100644
--- a/keyboards/plume/plume65/config.h
+++ b/keyboards/plume/plume65/config.h
@@ -126,8 +126,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/plut0nium/0x3e/config.h b/keyboards/plut0nium/0x3e/config.h
index f61d22228f4a..055fe63ce7f6 100644
--- a/keyboards/plut0nium/0x3e/config.h
+++ b/keyboards/plut0nium/0x3e/config.h
@@ -105,10 +105,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/pohjolaworks/louhi/config.h b/keyboards/pohjolaworks/louhi/config.h
index c790ddfbb2fd..b9cbde16d3f9 100644
--- a/keyboards/pohjolaworks/louhi/config.h
+++ b/keyboards/pohjolaworks/louhi/config.h
@@ -141,10 +141,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/polilla/rev1/config.h b/keyboards/polilla/rev1/config.h
index 5f0f10d355d2..b48e99e6d57e 100644
--- a/keyboards/polilla/rev1/config.h
+++ b/keyboards/polilla/rev1/config.h
@@ -73,10 +73,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/portal_66/hotswap/config.h b/keyboards/portal_66/hotswap/config.h
index db4c59bd44f0..96ea091a20b2 100644
--- a/keyboards/portal_66/hotswap/config.h
+++ b/keyboards/portal_66/hotswap/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/portal_66/soldered/config.h b/keyboards/portal_66/soldered/config.h
index 3a3efc80b5fd..f5e0d734c405 100644
--- a/keyboards/portal_66/soldered/config.h
+++ b/keyboards/portal_66/soldered/config.h
@@ -100,10 +100,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/pos78/config.h b/keyboards/pos78/config.h
index c070d1358d16..81449c844f28 100644
--- a/keyboards/pos78/config.h
+++ b/keyboards/pos78/config.h
@@ -106,10 +106,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h
index 8f72de909430..6bcfa26380fe 100644
--- a/keyboards/preonic/config.h
+++ b/keyboards/preonic/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h
index f2c4b3c3d8cf..efa32d5916bf 100644
--- a/keyboards/preonic/rev3/config.h
+++ b/keyboards/preonic/rev3/config.h
@@ -89,8 +89,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/*
* WS2812 Underglow Matrix options
diff --git a/keyboards/preonic/rev3_drop/config.h b/keyboards/preonic/rev3_drop/config.h
index 1a0605e73903..813675eb8461 100644
--- a/keyboards/preonic/rev3_drop/config.h
+++ b/keyboards/preonic/rev3_drop/config.h
@@ -91,8 +91,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/*
* WS2812 Underglow Matrix options
diff --git a/keyboards/program_yoink/config.h b/keyboards/program_yoink/config.h
index 8ff859913acd..156044d24a1d 100644
--- a/keyboards/program_yoink/config.h
+++ b/keyboards/program_yoink/config.h
@@ -94,7 +94,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/projectcain/vault35/config.h b/keyboards/projectcain/vault35/config.h
index d88863e5b5b2..1490b0ba4e91 100644
--- a/keyboards/projectcain/vault35/config.h
+++ b/keyboards/projectcain/vault35/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
-//#define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/projectcain/vault45/config.h b/keyboards/projectcain/vault45/config.h
index 6accb223a444..e531c7f5307f 100644
--- a/keyboards/projectcain/vault45/config.h
+++ b/keyboards/projectcain/vault45/config.h
@@ -147,10 +147,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/projectkb/alice/rev1/config.h b/keyboards/projectkb/alice/rev1/config.h
index 05180c756f8e..498c1f937094 100644
--- a/keyboards/projectkb/alice/rev1/config.h
+++ b/keyboards/projectkb/alice/rev1/config.h
@@ -81,5 +81,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/projectkb/alice/rev2/config.h b/keyboards/projectkb/alice/rev2/config.h
index 0b017936c58c..21742ac7b810 100644
--- a/keyboards/projectkb/alice/rev2/config.h
+++ b/keyboards/projectkb/alice/rev2/config.h
@@ -82,5 +82,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/prototypist/allison/config.h b/keyboards/prototypist/allison/config.h
index 85cb6ee9f5df..89a24768deb4 100644
--- a/keyboards/prototypist/allison/config.h
+++ b/keyboards/prototypist/allison/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/prototypist/allison_numpad/config.h b/keyboards/prototypist/allison_numpad/config.h
index 581926c24c14..59fb02d9a5f4 100644
--- a/keyboards/prototypist/allison_numpad/config.h
+++ b/keyboards/prototypist/allison_numpad/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/psuieee/pluto12/config.h b/keyboards/psuieee/pluto12/config.h
index b59bd05afe1c..49466f7b4aa1 100644
--- a/keyboards/psuieee/pluto12/config.h
+++ b/keyboards/psuieee/pluto12/config.h
@@ -36,7 +36,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/pteron36/config.h b/keyboards/pteron36/config.h
index d6f31514e60b..793dc8e5ed67 100644
--- a/keyboards/pteron36/config.h
+++ b/keyboards/pteron36/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
@@ -164,4 +160,4 @@ along with this program. If not, see .
//RGB Underglow
#define RGB_DI_PIN B6
-#define RGBLED_NUM 10
\ No newline at end of file
+#define RGBLED_NUM 10
diff --git a/keyboards/punk75/config.h b/keyboards/punk75/config.h
index 76d620b2223e..61950da9468a 100644
--- a/keyboards/punk75/config.h
+++ b/keyboards/punk75/config.h
@@ -66,7 +66,3 @@ along with this program. If not, see .
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/qpockets/wanten/config.h b/keyboards/qpockets/wanten/config.h
index ed6294f73fae..18a91c1dfdc0 100644
--- a/keyboards/qpockets/wanten/config.h
+++ b/keyboards/qpockets/wanten/config.h
@@ -152,10 +152,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/quad_h/lb75/config.h b/keyboards/quad_h/lb75/config.h
index e752dfcdd531..36cb275a97b6 100644
--- a/keyboards/quad_h/lb75/config.h
+++ b/keyboards/quad_h/lb75/config.h
@@ -134,8 +134,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/quantrik/kyuu/config.h b/keyboards/quantrik/kyuu/config.h
index a2fc756fba50..772e404ad015 100644
--- a/keyboards/quantrik/kyuu/config.h
+++ b/keyboards/quantrik/kyuu/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/qwertyydox/config.h b/keyboards/qwertyydox/config.h
index 4cd214e2228e..4ca8fed1927d 100644
--- a/keyboards/qwertyydox/config.h
+++ b/keyboards/qwertyydox/config.h
@@ -144,8 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/rabbit/rabbit68/config.h b/keyboards/rabbit/rabbit68/config.h
index bae66808ace4..9ebd5e55ae4f 100644
--- a/keyboards/rabbit/rabbit68/config.h
+++ b/keyboards/rabbit/rabbit68/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ramonimbao/aelith/config.h b/keyboards/ramonimbao/aelith/config.h
index 0c4c2285d5b9..a2911dac4f04 100644
--- a/keyboards/ramonimbao/aelith/config.h
+++ b/keyboards/ramonimbao/aelith/config.h
@@ -99,7 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ramonimbao/chevron/config.h b/keyboards/ramonimbao/chevron/config.h
index ec52ee59541d..9deeff385647 100644
--- a/keyboards/ramonimbao/chevron/config.h
+++ b/keyboards/ramonimbao/chevron/config.h
@@ -133,10 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ramonimbao/herringbone/pro/config.h b/keyboards/ramonimbao/herringbone/pro/config.h
index 4aab52fcb5dc..f78665a8806f 100644
--- a/keyboards/ramonimbao/herringbone/pro/config.h
+++ b/keyboards/ramonimbao/herringbone/pro/config.h
@@ -108,10 +108,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ramonimbao/herringbone/v1/config.h b/keyboards/ramonimbao/herringbone/v1/config.h
index 9944cfbd1948..7f37bcc8b20c 100644
--- a/keyboards/ramonimbao/herringbone/v1/config.h
+++ b/keyboards/ramonimbao/herringbone/v1/config.h
@@ -136,10 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ramonimbao/mona/v1/config.h b/keyboards/ramonimbao/mona/v1/config.h
index 81ddb806e802..5ee7ca3e33c3 100644
--- a/keyboards/ramonimbao/mona/v1/config.h
+++ b/keyboards/ramonimbao/mona/v1/config.h
@@ -57,7 +57,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ramonimbao/mona/v1_1/config.h b/keyboards/ramonimbao/mona/v1_1/config.h
index de657cd8e6d4..ce9c01139ef6 100644
--- a/keyboards/ramonimbao/mona/v1_1/config.h
+++ b/keyboards/ramonimbao/mona/v1_1/config.h
@@ -55,8 +55,3 @@ along with this program. If not, see .
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ramonimbao/mona/v32a/config.h b/keyboards/ramonimbao/mona/v32a/config.h
index 9cd47cd02467..fdd80e59aa4a 100644
--- a/keyboards/ramonimbao/mona/v32a/config.h
+++ b/keyboards/ramonimbao/mona/v32a/config.h
@@ -55,8 +55,3 @@ along with this program. If not, see .
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ramonimbao/squishy65/config.h b/keyboards/ramonimbao/squishy65/config.h
index 9aa3c8d82dfe..1f2bfd7e665b 100644
--- a/keyboards/ramonimbao/squishy65/config.h
+++ b/keyboards/ramonimbao/squishy65/config.h
@@ -64,5 +64,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ramonimbao/squishyfrl/config.h b/keyboards/ramonimbao/squishyfrl/config.h
index 0c1d417b8113..9a5094877166 100644
--- a/keyboards/ramonimbao/squishyfrl/config.h
+++ b/keyboards/ramonimbao/squishyfrl/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ramonimbao/squishytkl/config.h b/keyboards/ramonimbao/squishytkl/config.h
index ebebc35bb4b1..0ee0bc950955 100644
--- a/keyboards/ramonimbao/squishytkl/config.h
+++ b/keyboards/ramonimbao/squishytkl/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ramonimbao/tkl_ff/config.h b/keyboards/ramonimbao/tkl_ff/config.h
index ec73601f84c9..d0b3ee75ffa4 100644
--- a/keyboards/ramonimbao/tkl_ff/config.h
+++ b/keyboards/ramonimbao/tkl_ff/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ramonimbao/wete/v1/config.h b/keyboards/ramonimbao/wete/v1/config.h
index 3d89550090a2..ae9ffc6d97f0 100644
--- a/keyboards/ramonimbao/wete/v1/config.h
+++ b/keyboards/ramonimbao/wete/v1/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ramonimbao/wete/v2/config.h b/keyboards/ramonimbao/wete/v2/config.h
index 00cc6593d36d..d66fe09ad3cb 100644
--- a/keyboards/ramonimbao/wete/v2/config.h
+++ b/keyboards/ramonimbao/wete/v2/config.h
@@ -150,10 +150,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/rart/rartlice/config.h b/keyboards/rart/rartlice/config.h
index fc6fbaa117af..cf02cfedb668 100644
--- a/keyboards/rart/rartlice/config.h
+++ b/keyboards/rart/rartlice/config.h
@@ -68,5 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rate/pistachio/rev1/config.h b/keyboards/rate/pistachio/rev1/config.h
index 24f121ef1713..efffd3c9e297 100644
--- a/keyboards/rate/pistachio/rev1/config.h
+++ b/keyboards/rate/pistachio/rev1/config.h
@@ -61,7 +61,3 @@ along with this program. If not, see .
/* nKey Rollover */
#define FORCE_NKRO
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/rate/pistachio/rev2/config.h b/keyboards/rate/pistachio/rev2/config.h
index d0de2985425e..5363f76df4f4 100644
--- a/keyboards/rate/pistachio/rev2/config.h
+++ b/keyboards/rate/pistachio/rev2/config.h
@@ -65,7 +65,3 @@ along with this program. If not, see .
/* nKey Rollover */
#define FORCE_NKRO
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/rate/pistachio_mp/config.h b/keyboards/rate/pistachio_mp/config.h
index 4da866bb7d29..09b067c8ee0a 100644
--- a/keyboards/rate/pistachio_mp/config.h
+++ b/keyboards/rate/pistachio_mp/config.h
@@ -72,7 +72,3 @@ along with this program. If not, see .
/* nKey Rollover */
#define FORCE_NKRO
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/rate/pistachio_pro/config.h b/keyboards/rate/pistachio_pro/config.h
index f268967f6e5f..d140aa54071b 100644
--- a/keyboards/rate/pistachio_pro/config.h
+++ b/keyboards/rate/pistachio_pro/config.h
@@ -86,10 +86,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/recompile_keys/mio/config.h b/keyboards/recompile_keys/mio/config.h
index 7eab9ea590f2..0c4438e53e03 100644
--- a/keyboards/recompile_keys/mio/config.h
+++ b/keyboards/recompile_keys/mio/config.h
@@ -58,10 +58,6 @@ along with this program. If not, see .
# define RGBLIGHT_ANIMATIONS
#endif
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/recompile_keys/nomu30/rev2/config.h b/keyboards/recompile_keys/nomu30/rev2/config.h
index de9b37ec26c4..49d80a716265 100644
--- a/keyboards/recompile_keys/nomu30/rev2/config.h
+++ b/keyboards/recompile_keys/nomu30/rev2/config.h
@@ -41,7 +41,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/redox/rev1/config.h b/keyboards/redox/rev1/config.h
index c9863fdcb6de..95c4e3cbbf8c 100644
--- a/keyboards/redox/rev1/config.h
+++ b/keyboards/redox/rev1/config.h
@@ -78,5 +78,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/redox/rev1/proton_c/config.h b/keyboards/redox/rev1/proton_c/config.h
index 4ec4a975a41e..eec50ab87996 100644
--- a/keyboards/redox/rev1/proton_c/config.h
+++ b/keyboards/redox/rev1/proton_c/config.h
@@ -62,5 +62,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/redox_w/config.h b/keyboards/redox_w/config.h
index c4aeb32d5857..4fe2447b06f5 100644
--- a/keyboards/redox_w/config.h
+++ b/keyboards/redox_w/config.h
@@ -53,5 +53,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/redscarf_iiplus/verb/config.h b/keyboards/redscarf_iiplus/verb/config.h
index c313b90a325a..daf1bc88239e 100755
--- a/keyboards/redscarf_iiplus/verb/config.h
+++ b/keyboards/redscarf_iiplus/verb/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/redscarf_iiplus/verc/config.h b/keyboards/redscarf_iiplus/verc/config.h
index c313b90a325a..daf1bc88239e 100755
--- a/keyboards/redscarf_iiplus/verc/config.h
+++ b/keyboards/redscarf_iiplus/verc/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/redscarf_iiplus/verd/config.h b/keyboards/redscarf_iiplus/verd/config.h
index 94b0e88539e9..d0ab1abe3313 100644
--- a/keyboards/redscarf_iiplus/verd/config.h
+++ b/keyboards/redscarf_iiplus/verd/config.h
@@ -142,8 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/retro_75/config.h b/keyboards/retro_75/config.h
index 6ab89d7617e4..5d8c26450d89 100644
--- a/keyboards/retro_75/config.h
+++ b/keyboards/retro_75/config.h
@@ -136,8 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/reversestudio/decadepad/config.h b/keyboards/reversestudio/decadepad/config.h
index 383a539d787b..f4bbdfda11e9 100644
--- a/keyboards/reversestudio/decadepad/config.h
+++ b/keyboards/reversestudio/decadepad/config.h
@@ -79,5 +79,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
\ No newline at end of file
diff --git a/keyboards/reviung/reviung33/config.h b/keyboards/reviung/reviung33/config.h
index b65d1d7c3942..f113de6d1198 100644
--- a/keyboards/reviung/reviung33/config.h
+++ b/keyboards/reviung/reviung33/config.h
@@ -128,10 +128,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/reviung/reviung34/config.h b/keyboards/reviung/reviung34/config.h
index 0847678e86af..254ea550afaa 100755
--- a/keyboards/reviung/reviung34/config.h
+++ b/keyboards/reviung/reviung34/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/reviung/reviung39/config.h b/keyboards/reviung/reviung39/config.h
index 098497bc9f46..1377cecd3fe8 100644
--- a/keyboards/reviung/reviung39/config.h
+++ b/keyboards/reviung/reviung39/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/reviung/reviung41/config.h b/keyboards/reviung/reviung41/config.h
index 967ca791d585..afa83220c76e 100644
--- a/keyboards/reviung/reviung41/config.h
+++ b/keyboards/reviung/reviung41/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/reviung/reviung5/config.h b/keyboards/reviung/reviung5/config.h
index b06c5797fdbd..38b88c07a8b7 100644
--- a/keyboards/reviung/reviung5/config.h
+++ b/keyboards/reviung/reviung5/config.h
@@ -136,10 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/reviung/reviung53/config.h b/keyboards/reviung/reviung53/config.h
index d73e6eab8a77..f874297d77f7 100644
--- a/keyboards/reviung/reviung53/config.h
+++ b/keyboards/reviung/reviung53/config.h
@@ -129,10 +129,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/reviung/reviung61/config.h b/keyboards/reviung/reviung61/config.h
index 26588d8688fa..0d10c983c950 100644
--- a/keyboards/reviung/reviung61/config.h
+++ b/keyboards/reviung/reviung61/config.h
@@ -57,7 +57,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/rgbkb/sol/config.h b/keyboards/rgbkb/sol/config.h
index e81389454920..50cb5b82b718 100644
--- a/keyboards/rgbkb/sol/config.h
+++ b/keyboards/rgbkb/sol/config.h
@@ -130,5 +130,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rgbkb/zen/rev1/config.h b/keyboards/rgbkb/zen/rev1/config.h
index 649a3800559a..d41ffa477d87 100644
--- a/keyboards/rgbkb/zen/rev1/config.h
+++ b/keyboards/rgbkb/zen/rev1/config.h
@@ -69,5 +69,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rgbkb/zen/rev2/config.h b/keyboards/rgbkb/zen/rev2/config.h
index 859d115ea574..e37bd7a1689e 100644
--- a/keyboards/rgbkb/zen/rev2/config.h
+++ b/keyboards/rgbkb/zen/rev2/config.h
@@ -79,5 +79,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rgbkb/zygomorph/rev1/config.h b/keyboards/rgbkb/zygomorph/rev1/config.h
index 190a8bbe3e91..19fd28d2ecef 100644
--- a/keyboards/rgbkb/zygomorph/rev1/config.h
+++ b/keyboards/rgbkb/zygomorph/rev1/config.h
@@ -99,5 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rocketboard_16/config.h b/keyboards/rocketboard_16/config.h
index cd99fcc73bc2..d06895f70939 100644
--- a/keyboards/rocketboard_16/config.h
+++ b/keyboards/rocketboard_16/config.h
@@ -79,5 +79,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rominronin/katana60/rev1/config.h b/keyboards/rominronin/katana60/rev1/config.h
index fe10d1a533d7..fea2d7d643d5 100644
--- a/keyboards/rominronin/katana60/rev1/config.h
+++ b/keyboards/rominronin/katana60/rev1/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rominronin/katana60/rev2/config.h b/keyboards/rominronin/katana60/rev2/config.h
index 7eff68a7f492..24984c817998 100644
--- a/keyboards/rominronin/katana60/rev2/config.h
+++ b/keyboards/rominronin/katana60/rev2/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/roseslite/config.h b/keyboards/roseslite/config.h
index 48e251e96d4a..44f415b37969 100644
--- a/keyboards/roseslite/config.h
+++ b/keyboards/roseslite/config.h
@@ -127,5 +127,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/rubi/config.h b/keyboards/rubi/config.h
index 5b6b1c4531ad..25c7aa5be714 100644
--- a/keyboards/rubi/config.h
+++ b/keyboards/rubi/config.h
@@ -58,8 +58,4 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define OLED_FONT_H "lib/glcdfont.c"
diff --git a/keyboards/runes/vaengr/config.h b/keyboards/runes/vaengr/config.h
index 22b38760c454..67ba4ca0fe7a 100644
--- a/keyboards/runes/vaengr/config.h
+++ b/keyboards/runes/vaengr/config.h
@@ -138,10 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ryanbaekr/rb69/config.h b/keyboards/ryanbaekr/rb69/config.h
index 2112eda1a74f..0464befc5fbc 100644
--- a/keyboards/ryanbaekr/rb69/config.h
+++ b/keyboards/ryanbaekr/rb69/config.h
@@ -112,7 +112,3 @@ along with this program. If not, see .
*
*/
//#define FORCE_NKRO
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ryanbaekr/rb86/config.h b/keyboards/ryanbaekr/rb86/config.h
index ec93c2b3c577..fd076dd706d8 100644
--- a/keyboards/ryanbaekr/rb86/config.h
+++ b/keyboards/ryanbaekr/rb86/config.h
@@ -90,7 +90,3 @@ along with this program. If not, see .
*
*/
//#define FORCE_NKRO
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/sandwich/keeb68/config.h b/keyboards/sandwich/keeb68/config.h
index 7dddf54d763c..9395d8ef1a1b 100644
--- a/keyboards/sandwich/keeb68/config.h
+++ b/keyboards/sandwich/keeb68/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/satt/comet46/config.h b/keyboards/satt/comet46/config.h
index 5ea40c14c592..d75294dc1335 100644
--- a/keyboards/satt/comet46/config.h
+++ b/keyboards/satt/comet46/config.h
@@ -54,8 +54,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// Define masks for modifiers
#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
diff --git a/keyboards/satt/vision/config.h b/keyboards/satt/vision/config.h
index 62a7244aa4ab..2db8fa8b2961 100644
--- a/keyboards/satt/vision/config.h
+++ b/keyboards/satt/vision/config.h
@@ -58,5 +58,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/scatter42/config.h b/keyboards/scatter42/config.h
index 3bca175cc5b1..ca7ce70ff396 100644
--- a/keyboards/scatter42/config.h
+++ b/keyboards/scatter42/config.h
@@ -138,10 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/sck/m0116b/config.h b/keyboards/sck/m0116b/config.h
index b01ea2d2ef7d..b008ff1b2470 100644
--- a/keyboards/sck/m0116b/config.h
+++ b/keyboards/sck/m0116b/config.h
@@ -136,8 +136,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/sck/neiso/config.h b/keyboards/sck/neiso/config.h
index ccf4da9f1018..9ff392ec2500 100644
--- a/keyboards/sck/neiso/config.h
+++ b/keyboards/sck/neiso/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/sck/osa/config.h b/keyboards/sck/osa/config.h
index 957652f286cd..6e3d617e9a94 100644
--- a/keyboards/sck/osa/config.h
+++ b/keyboards/sck/osa/config.h
@@ -142,8 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/sekigon/grs_70ec/config.h b/keyboards/sekigon/grs_70ec/config.h
index b1559fcc2f6c..2eb52658e58b 100644
--- a/keyboards/sekigon/grs_70ec/config.h
+++ b/keyboards/sekigon/grs_70ec/config.h
@@ -145,10 +145,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/senselessclay/ck60/config.h b/keyboards/senselessclay/ck60/config.h
index f826ad9ad72b..dc2cb68c79dd 100644
--- a/keyboards/senselessclay/ck60/config.h
+++ b/keyboards/senselessclay/ck60/config.h
@@ -74,7 +74,3 @@ along with this program. If not, see .
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
# define ENABLE_RGB_MATRIX_MULTISPLASH
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/senselessclay/ck65/config.h b/keyboards/senselessclay/ck65/config.h
index 772b2e410a2a..f23560f164c2 100644
--- a/keyboards/senselessclay/ck65/config.h
+++ b/keyboards/senselessclay/ck65/config.h
@@ -102,10 +102,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
@@ -116,4 +112,4 @@ along with this program. If not, see .
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_LIMIT_VAL 122
#define RGBLIGHT_SLEEP
-#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+5
\ No newline at end of file
+#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+5
diff --git a/keyboards/senselessclay/gos65/config.h b/keyboards/senselessclay/gos65/config.h
index e910f5a15d05..5656d77ea5d1 100644
--- a/keyboards/senselessclay/gos65/config.h
+++ b/keyboards/senselessclay/gos65/config.h
@@ -107,10 +107,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
@@ -120,4 +116,4 @@ along with this program. If not, see .
#define RGBLED_NUM 68
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_LIMIT_VAL 125
-#define RGBLIGHT_SLEEP
\ No newline at end of file
+#define RGBLIGHT_SLEEP
diff --git a/keyboards/senselessclay/had60/config.h b/keyboards/senselessclay/had60/config.h
index a410ee91d508..60a4b23d021f 100644
--- a/keyboards/senselessclay/had60/config.h
+++ b/keyboards/senselessclay/had60/config.h
@@ -105,10 +105,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/sentraq/s60_x/default/config.h b/keyboards/sentraq/s60_x/default/config.h
index 355adc692117..3f08499531fa 100644
--- a/keyboards/sentraq/s60_x/default/config.h
+++ b/keyboards/sentraq/s60_x/default/config.h
@@ -41,5 +41,3 @@
#define LOCKING_RESYNC_ENABLE
#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/shapeshifter4060/config.h b/keyboards/shapeshifter4060/config.h
index c8953821a791..ee84318f3d4b 100644
--- a/keyboards/shapeshifter4060/config.h
+++ b/keyboards/shapeshifter4060/config.h
@@ -67,5 +67,3 @@ along with this program. If not, see .
// #define NO_ACTION_LAYER
// #define NO_ACTION_TAPPING
// #define NO_ACTION_ONESHOT
-// #define NO_ACTION_MACRO
-// #define NO_ACTION_FUNCTION
diff --git a/keyboards/shiro/config.h b/keyboards/shiro/config.h
index 52c0f361fda4..0e7ac54f97ec 100644
--- a/keyboards/shiro/config.h
+++ b/keyboards/shiro/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/shk9/config.h b/keyboards/shk9/config.h
index a8ddd3f870be..059515c77660 100644
--- a/keyboards/shk9/config.h
+++ b/keyboards/shk9/config.h
@@ -45,7 +45,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
\ No newline at end of file
diff --git a/keyboards/sidderskb/majbritt/rev2/config.h b/keyboards/sidderskb/majbritt/rev2/config.h
index 06049727cb73..6bee0fa6bf65 100644
--- a/keyboards/sidderskb/majbritt/rev2/config.h
+++ b/keyboards/sidderskb/majbritt/rev2/config.h
@@ -43,6 +43,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h
index 5b4ae5a11087..28b53eb06651 100644
--- a/keyboards/silverbullet44/config.h
+++ b/keyboards/silverbullet44/config.h
@@ -180,10 +180,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/sirius/uni660/rev1/config.h b/keyboards/sirius/uni660/rev1/config.h
index f9815844cb2a..4b810e2cd635 100644
--- a/keyboards/sirius/uni660/rev1/config.h
+++ b/keyboards/sirius/uni660/rev1/config.h
@@ -53,8 +53,4 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
diff --git a/keyboards/sirius/uni660/rev2/ansi/config.h b/keyboards/sirius/uni660/rev2/ansi/config.h
index 8777dc401116..19ee1166c308 100644
--- a/keyboards/sirius/uni660/rev2/ansi/config.h
+++ b/keyboards/sirius/uni660/rev2/ansi/config.h
@@ -53,8 +53,4 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
diff --git a/keyboards/sirius/uni660/rev2/iso/config.h b/keyboards/sirius/uni660/rev2/iso/config.h
index 763230dca818..f0f771707ef0 100644
--- a/keyboards/sirius/uni660/rev2/iso/config.h
+++ b/keyboards/sirius/uni660/rev2/iso/config.h
@@ -53,8 +53,4 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
diff --git a/keyboards/sirius/unigo66/config.h b/keyboards/sirius/unigo66/config.h
index 8383a2f30240..777046db0c85 100644
--- a/keyboards/sirius/unigo66/config.h
+++ b/keyboards/sirius/unigo66/config.h
@@ -43,5 +43,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/sixkeyboard/config.h b/keyboards/sixkeyboard/config.h
index d6505e70c7ae..a4d19a5ca119 100644
--- a/keyboards/sixkeyboard/config.h
+++ b/keyboards/sixkeyboard/config.h
@@ -62,5 +62,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
#define NO_ACTION_TAPPING
#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/skippys_custom_pcs/roopad/config.h b/keyboards/skippys_custom_pcs/roopad/config.h
index 53a29c6158b0..9d30421dcb2e 100644
--- a/keyboards/skippys_custom_pcs/roopad/config.h
+++ b/keyboards/skippys_custom_pcs/roopad/config.h
@@ -66,6 +66,3 @@ along with this program. If not, see .
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_TWINKLE
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/slz40/config.h b/keyboards/slz40/config.h
index cc868e4c0c45..7bcc71bb3c33 100644
--- a/keyboards/slz40/config.h
+++ b/keyboards/slz40/config.h
@@ -137,10 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/smallice/config.h b/keyboards/smallice/config.h
index 551c3cefd225..5ebafba42da6 100644
--- a/keyboards/smallice/config.h
+++ b/keyboards/smallice/config.h
@@ -81,10 +81,6 @@ along with this program. If not, see .
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h
index 263066635980..c96fa911e527 100644
--- a/keyboards/smallkeyboard/config.h
+++ b/keyboards/smallkeyboard/config.h
@@ -49,10 +49,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/smk60/config.h b/keyboards/smk60/config.h
index 59866c006f4c..2c7d0e178f06 100644
--- a/keyboards/smk60/config.h
+++ b/keyboards/smk60/config.h
@@ -40,8 +40,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
//rgb light setting
#define RGBLED_NUM 4
diff --git a/keyboards/snampad/config.h b/keyboards/snampad/config.h
index 64bb16fb40e1..f15fc72200cc 100644
--- a/keyboards/snampad/config.h
+++ b/keyboards/snampad/config.h
@@ -132,8 +132,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/sofle/rev1/config.h b/keyboards/sofle/rev1/config.h
index 831387e99088..a34c5743268a 100644
--- a/keyboards/sofle/rev1/config.h
+++ b/keyboards/sofle/rev1/config.h
@@ -33,6 +33,3 @@
#define USE_SERIAL
#define SERIAL_USE_MULTI_TRANSACTION
#define SOFT_SERIAL_PIN D2
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/soup10/config.h b/keyboards/soup10/config.h
index 83fb2dd8959e..81acb34604fd 100644
--- a/keyboards/soup10/config.h
+++ b/keyboards/soup10/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
diff --git a/keyboards/spacetime/config.h b/keyboards/spacetime/config.h
index 7dfca576a027..93eae10402ed 100644
--- a/keyboards/spacetime/config.h
+++ b/keyboards/spacetime/config.h
@@ -133,8 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/spacey/config.h b/keyboards/spacey/config.h
index 81f3df6a89e2..52923d2f8eb1 100644
--- a/keyboards/spacey/config.h
+++ b/keyboards/spacey/config.h
@@ -100,11 +100,6 @@ along with this program. If not, see .
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/specskeys/config.h b/keyboards/specskeys/config.h
index 09988ba63b24..8478a31e71f7 100644
--- a/keyboards/specskeys/config.h
+++ b/keyboards/specskeys/config.h
@@ -142,10 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/splitty/config.h b/keyboards/splitty/config.h
index 3f0a8b9b2058..68ea1b9411f7 100644
--- a/keyboards/splitty/config.h
+++ b/keyboards/splitty/config.h
@@ -60,7 +60,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/studiokestra/bourgeau/config.h b/keyboards/studiokestra/bourgeau/config.h
index 744149c34eb1..afb8bb858fad 100644
--- a/keyboards/studiokestra/bourgeau/config.h
+++ b/keyboards/studiokestra/bourgeau/config.h
@@ -75,8 +75,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/studiokestra/cascade/config.h b/keyboards/studiokestra/cascade/config.h
index 88b2a583cbf0..1ef4c21e5074 100644
--- a/keyboards/studiokestra/cascade/config.h
+++ b/keyboards/studiokestra/cascade/config.h
@@ -76,8 +76,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/studiokestra/galatea/config.h b/keyboards/studiokestra/galatea/config.h
index e9a6b80b148c..accc0d2b432d 100644
--- a/keyboards/studiokestra/galatea/config.h
+++ b/keyboards/studiokestra/galatea/config.h
@@ -68,10 +68,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/studiokestra/nue/config.h b/keyboards/studiokestra/nue/config.h
index 72514d85c9cd..dc4aee20aa37 100644
--- a/keyboards/studiokestra/nue/config.h
+++ b/keyboards/studiokestra/nue/config.h
@@ -41,10 +41,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/subatomic/config.h b/keyboards/subatomic/config.h
index 47fcc72fd2c4..d53805b62f83 100644
--- a/keyboards/subatomic/config.h
+++ b/keyboards/subatomic/config.h
@@ -72,5 +72,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/switchplate/southpaw_65/config.h b/keyboards/switchplate/southpaw_65/config.h
index 7512e0e2b381..20fe48eb9b64 100644
--- a/keyboards/switchplate/southpaw_65/config.h
+++ b/keyboards/switchplate/southpaw_65/config.h
@@ -127,8 +127,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/switchplate/southpaw_fullsize/config.h b/keyboards/switchplate/southpaw_fullsize/config.h
index c15cb1d0be03..fb407383ad2b 100644
--- a/keyboards/switchplate/southpaw_fullsize/config.h
+++ b/keyboards/switchplate/southpaw_fullsize/config.h
@@ -78,10 +78,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/switchplate/switchplate910/config.h b/keyboards/switchplate/switchplate910/config.h
index 81f825470301..e1e50411c41c 100644
--- a/keyboards/switchplate/switchplate910/config.h
+++ b/keyboards/switchplate/switchplate910/config.h
@@ -78,10 +78,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/tada68/config.h b/keyboards/tada68/config.h
index b537380cc02d..2e035e08afa9 100755
--- a/keyboards/tada68/config.h
+++ b/keyboards/tada68/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/takashicompany/center_enter/config.h b/keyboards/takashicompany/center_enter/config.h
index 94868bde1e76..9900d35f372e 100644
--- a/keyboards/takashicompany/center_enter/config.h
+++ b/keyboards/takashicompany/center_enter/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/takashicompany/compacx/config.h b/keyboards/takashicompany/compacx/config.h
index 5428482ed3b9..1db4a7357a54 100644
--- a/keyboards/takashicompany/compacx/config.h
+++ b/keyboards/takashicompany/compacx/config.h
@@ -140,10 +140,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/takashicompany/dogtag/config.h b/keyboards/takashicompany/dogtag/config.h
index 631435092df9..bc4c44d24ce5 100644
--- a/keyboards/takashicompany/dogtag/config.h
+++ b/keyboards/takashicompany/dogtag/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/takashicompany/endzone34/config.h b/keyboards/takashicompany/endzone34/config.h
index ff6697623b54..c2c9e0420001 100644
--- a/keyboards/takashicompany/endzone34/config.h
+++ b/keyboards/takashicompany/endzone34/config.h
@@ -142,10 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/takashicompany/heavy_left/config.h b/keyboards/takashicompany/heavy_left/config.h
index b5a16def6845..4c3138fc8e06 100644
--- a/keyboards/takashicompany/heavy_left/config.h
+++ b/keyboards/takashicompany/heavy_left/config.h
@@ -136,12 +136,8 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
-#define EE_HANDS
\ No newline at end of file
+#define EE_HANDS
diff --git a/keyboards/takashicompany/qoolee/config.h b/keyboards/takashicompany/qoolee/config.h
index 99c8ce01428e..3095f8415957 100644
--- a/keyboards/takashicompany/qoolee/config.h
+++ b/keyboards/takashicompany/qoolee/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
-//#define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/takashicompany/radialex/config.h b/keyboards/takashicompany/radialex/config.h
index ee6e958f9cc8..7aa3c85360ac 100644
--- a/keyboards/takashicompany/radialex/config.h
+++ b/keyboards/takashicompany/radialex/config.h
@@ -130,10 +130,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/takashiski/hecomi/alpha/config.h b/keyboards/takashiski/hecomi/alpha/config.h
index 55c5ac50eb80..165b815667ad 100644
--- a/keyboards/takashiski/hecomi/alpha/config.h
+++ b/keyboards/takashiski/hecomi/alpha/config.h
@@ -131,8 +131,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/takashiski/namecard2x4/rev1/config.h b/keyboards/takashiski/namecard2x4/rev1/config.h
index d743c0e339b0..a91df15b0814 100644
--- a/keyboards/takashiski/namecard2x4/rev1/config.h
+++ b/keyboards/takashiski/namecard2x4/rev1/config.h
@@ -112,6 +112,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/takashiski/namecard2x4/rev2/config.h b/keyboards/takashiski/namecard2x4/rev2/config.h
index 37434d41a08c..402737dc711c 100644
--- a/keyboards/takashiski/namecard2x4/rev2/config.h
+++ b/keyboards/takashiski/namecard2x4/rev2/config.h
@@ -112,6 +112,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/takashiski/otaku_split/rev0/config.h b/keyboards/takashiski/otaku_split/rev0/config.h
index 454f4866e663..5fab9ea77e51 100644
--- a/keyboards/takashiski/otaku_split/rev0/config.h
+++ b/keyboards/takashiski/otaku_split/rev0/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/takashiski/otaku_split/rev1/config.h b/keyboards/takashiski/otaku_split/rev1/config.h
index 7ae6155d8c3f..05979a6e0434 100644
--- a/keyboards/takashiski/otaku_split/rev1/config.h
+++ b/keyboards/takashiski/otaku_split/rev1/config.h
@@ -142,8 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/tanuki/config.h b/keyboards/tanuki/config.h
index 4680753dd491..3c323ba10ecc 100644
--- a/keyboards/tanuki/config.h
+++ b/keyboards/tanuki/config.h
@@ -73,5 +73,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/team0110/p1800fl/config.h b/keyboards/team0110/p1800fl/config.h
index 75e63c75cee2..f4aa79e88bf8 100644
--- a/keyboards/team0110/p1800fl/config.h
+++ b/keyboards/team0110/p1800fl/config.h
@@ -74,10 +74,6 @@ along with this program. If not, see .
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
-#define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/technika/config.h b/keyboards/technika/config.h
index c2be7cf7d405..80d313722538 100644
--- a/keyboards/technika/config.h
+++ b/keyboards/technika/config.h
@@ -68,5 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/telophase/config.h b/keyboards/telophase/config.h
index 837bb8ab9b49..6d23b98ae30a 100644
--- a/keyboards/telophase/config.h
+++ b/keyboards/telophase/config.h
@@ -68,7 +68,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/tetris/config.h b/keyboards/tetris/config.h
index 1f13f5f16805..cfea2a72dca1 100755
--- a/keyboards/tetris/config.h
+++ b/keyboards/tetris/config.h
@@ -30,9 +30,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef AUDIO_ENABLE
#define AUDIO_PIN B5
#define STARTUP_SONG SONG(ONE_UP_SOUND)
diff --git a/keyboards/tg4x/config.h b/keyboards/tg4x/config.h
index 87636d837193..0fb009983345 100644
--- a/keyboards/tg4x/config.h
+++ b/keyboards/tg4x/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/tgr/910ce/config.h b/keyboards/tgr/910ce/config.h
index fd21a2de7688..58b7426a1f9b 100644
--- a/keyboards/tgr/910ce/config.h
+++ b/keyboards/tgr/910ce/config.h
@@ -43,8 +43,3 @@ along with this program. If not, see .
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 3
#define RGBLIGHT_ANIMATIONS
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/thevankeyboards/jetvan/config.h b/keyboards/thevankeyboards/jetvan/config.h
index ea229cc29d74..74094a183a5f 100644
--- a/keyboards/thevankeyboards/jetvan/config.h
+++ b/keyboards/thevankeyboards/jetvan/config.h
@@ -104,5 +104,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/thevankeyboards/roadkit/config.h b/keyboards/thevankeyboards/roadkit/config.h
index 4572f5e2b90a..0bbd93ad7d77 100644
--- a/keyboards/thevankeyboards/roadkit/config.h
+++ b/keyboards/thevankeyboards/roadkit/config.h
@@ -100,5 +100,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/tkc/california/config.h b/keyboards/tkc/california/config.h
index 782086914251..294551478716 100644
--- a/keyboards/tkc/california/config.h
+++ b/keyboards/tkc/california/config.h
@@ -115,8 +115,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/tkc/candybar/lefty/config.h b/keyboards/tkc/candybar/lefty/config.h
index ba5c0b0778a6..104ead511ac4 100644
--- a/keyboards/tkc/candybar/lefty/config.h
+++ b/keyboards/tkc/candybar/lefty/config.h
@@ -77,8 +77,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// #define WS2812_LED_N 2
// #define RGBLED_NUM WS2812_LED_N
diff --git a/keyboards/tkc/candybar/lefty_r3/config.h b/keyboards/tkc/candybar/lefty_r3/config.h
index d7a490843068..9ce16dd7316a 100644
--- a/keyboards/tkc/candybar/lefty_r3/config.h
+++ b/keyboards/tkc/candybar/lefty_r3/config.h
@@ -77,8 +77,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// #define WS2812_LED_N 2
// #define RGBLED_NUM WS2812_LED_N
diff --git a/keyboards/tkc/candybar/righty/config.h b/keyboards/tkc/candybar/righty/config.h
index 47e3985ff3f2..dcbe840c8e29 100644
--- a/keyboards/tkc/candybar/righty/config.h
+++ b/keyboards/tkc/candybar/righty/config.h
@@ -77,8 +77,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// #define WS2812_LED_N 2
// #define RGBLED_NUM WS2812_LED_N
diff --git a/keyboards/tkc/candybar/righty_r3/config.h b/keyboards/tkc/candybar/righty_r3/config.h
index f68e29013c7e..0c8604a9acdc 100644
--- a/keyboards/tkc/candybar/righty_r3/config.h
+++ b/keyboards/tkc/candybar/righty_r3/config.h
@@ -77,8 +77,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// #define WS2812_LED_N 2
// #define RGBLED_NUM WS2812_LED_N
diff --git a/keyboards/tkc/godspeed75/config.h b/keyboards/tkc/godspeed75/config.h
index f50d4c638c36..edda02ea791e 100644
--- a/keyboards/tkc/godspeed75/config.h
+++ b/keyboards/tkc/godspeed75/config.h
@@ -77,8 +77,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_DI_PIN A13
#define RGBLED_NUM 14
diff --git a/keyboards/tkc/m0lly/config.h b/keyboards/tkc/m0lly/config.h
index ebcda755c250..377499ba7291 100644
--- a/keyboards/tkc/m0lly/config.h
+++ b/keyboards/tkc/m0lly/config.h
@@ -142,10 +142,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/tkc/osav2/config.h b/keyboards/tkc/osav2/config.h
index 5622621e2b8a..370e7b7b5b26 100644
--- a/keyboards/tkc/osav2/config.h
+++ b/keyboards/tkc/osav2/config.h
@@ -138,8 +138,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h
index 35d615a023a4..be042050f5a3 100644
--- a/keyboards/tkc/portico/config.h
+++ b/keyboards/tkc/portico/config.h
@@ -36,10 +36,6 @@ along with this program. If not, see .
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 4
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
diff --git a/keyboards/tkc/portico68v2/config.h b/keyboards/tkc/portico68v2/config.h
index af0a162810f0..486863d702ce 100644
--- a/keyboards/tkc/portico68v2/config.h
+++ b/keyboards/tkc/portico68v2/config.h
@@ -39,10 +39,6 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define DRIVER_ADDR_1 0b0110000
#define DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 82
diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h
index 48be10a42741..bbafc0d30988 100644
--- a/keyboards/tkc/portico75/config.h
+++ b/keyboards/tkc/portico75/config.h
@@ -47,10 +47,6 @@ along with this program. If not, see .
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 4
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
diff --git a/keyboards/tkc/tkc1800/config.h b/keyboards/tkc/tkc1800/config.h
index 02fccd82ff3f..5bf93542c2a4 100644
--- a/keyboards/tkc/tkc1800/config.h
+++ b/keyboards/tkc/tkc1800/config.h
@@ -111,5 +111,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/tkc/tkl_ab87/config.h b/keyboards/tkc/tkl_ab87/config.h
index 71bf94caa8bf..5ab7b946922d 100644
--- a/keyboards/tkc/tkl_ab87/config.h
+++ b/keyboards/tkc/tkl_ab87/config.h
@@ -143,8 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/tkw/grandiceps/config.h b/keyboards/tkw/grandiceps/config.h
index e51c9ab2235e..b2b60082407c 100644
--- a/keyboards/tkw/grandiceps/config.h
+++ b/keyboards/tkw/grandiceps/config.h
@@ -58,7 +58,3 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/tkw/stoutgat/v1/config.h b/keyboards/tkw/stoutgat/v1/config.h
index 2c60e8b5656c..96471e443dc6 100644
--- a/keyboards/tkw/stoutgat/v1/config.h
+++ b/keyboards/tkw/stoutgat/v1/config.h
@@ -37,7 +37,3 @@ along with this program. If not, see .
#define UNUSED_PINS
#define DIODE_DIRECTION COL2ROW
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/tkw/stoutgat/v2/config.h b/keyboards/tkw/stoutgat/v2/config.h
index 1c0a66f3c684..73b3eef90be1 100644
--- a/keyboards/tkw/stoutgat/v2/config.h
+++ b/keyboards/tkw/stoutgat/v2/config.h
@@ -60,10 +60,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/tmo50/config.h b/keyboards/tmo50/config.h
index 4547fcf63ef5..f3640197aeec 100644
--- a/keyboards/tmo50/config.h
+++ b/keyboards/tmo50/config.h
@@ -126,5 +126,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/touchpad/config.h b/keyboards/touchpad/config.h
index 2f512d17c359..8b42d0fe4fc0 100644
--- a/keyboards/touchpad/config.h
+++ b/keyboards/touchpad/config.h
@@ -60,5 +60,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/treasure/type9/config.h b/keyboards/treasure/type9/config.h
index cc629e3e4558..86734a7fd89d 100644
--- a/keyboards/treasure/type9/config.h
+++ b/keyboards/treasure/type9/config.h
@@ -114,6 +114,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/tszaboo/ortho4exent/config.h b/keyboards/tszaboo/ortho4exent/config.h
index dec9cdd7ee9d..b331cfbde96d 100644
--- a/keyboards/tszaboo/ortho4exent/config.h
+++ b/keyboards/tszaboo/ortho4exent/config.h
@@ -128,10 +128,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/tw40/config.h b/keyboards/tw40/config.h
index 839babb92073..67547b247e8d 100644
--- a/keyboards/tw40/config.h
+++ b/keyboards/tw40/config.h
@@ -44,6 +44,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/unikeyboard/diverge3/config.h b/keyboards/unikeyboard/diverge3/config.h
index 45dedfe6210a..502e97bd9115 100644
--- a/keyboards/unikeyboard/diverge3/config.h
+++ b/keyboards/unikeyboard/diverge3/config.h
@@ -110,5 +110,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/unikeyboard/felix/config.h b/keyboards/unikeyboard/felix/config.h
index 73f9d1fa8603..64319f029f1d 100644
--- a/keyboards/unikeyboard/felix/config.h
+++ b/keyboards/unikeyboard/felix/config.h
@@ -119,8 +119,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/unison/v04/config.h b/keyboards/unison/v04/config.h
index 88807811a901..93c1ae2e4b9e 100644
--- a/keyboards/unison/v04/config.h
+++ b/keyboards/unison/v04/config.h
@@ -119,7 +119,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/uranuma/config.h b/keyboards/uranuma/config.h
index c5acad4882f1..2c304012d327 100644
--- a/keyboards/uranuma/config.h
+++ b/keyboards/uranuma/config.h
@@ -123,8 +123,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/uzu42/config.h b/keyboards/uzu42/config.h
index 45f497d78215..3364d3063d9c 100644
--- a/keyboards/uzu42/config.h
+++ b/keyboards/uzu42/config.h
@@ -24,6 +24,3 @@ along with this program. If not, see .
#define SOFT_SERIAL_PIN D2
#define SERIAL_USE_MULTI_TRANSACTION
#endif
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/uzu42/rev1/config.h b/keyboards/uzu42/rev1/config.h
index 5d8c9000e64d..815442ed211e 100644
--- a/keyboards/uzu42/rev1/config.h
+++ b/keyboards/uzu42/rev1/config.h
@@ -74,5 +74,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/v4n4g0rth0n/config.h b/keyboards/v4n4g0rth0n/config.h
index e023875feb65..14721308f981 100644
--- a/keyboards/v4n4g0rth0n/config.h
+++ b/keyboards/v4n4g0rth0n/config.h
@@ -35,10 +35,6 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
// TOP, MID, BOT
// B4, D7, D6
#define LED_NUM_LOCK_PIN B4
diff --git a/keyboards/v60_type_r/config.h b/keyboards/v60_type_r/config.h
index c013bb99314f..1d0b38988ae1 100644
--- a/keyboards/v60_type_r/config.h
+++ b/keyboards/v60_type_r/config.h
@@ -115,5 +115,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/viktus/smolka/config.h b/keyboards/viktus/smolka/config.h
index 82acfff21430..fa655ae3e849 100644
--- a/keyboards/viktus/smolka/config.h
+++ b/keyboards/viktus/smolka/config.h
@@ -107,10 +107,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 1
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/viktus/sp111/config.h b/keyboards/viktus/sp111/config.h
index 7dda6457f665..c38eea5adc22 100644
--- a/keyboards/viktus/sp111/config.h
+++ b/keyboards/viktus/sp111/config.h
@@ -77,7 +77,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/viktus/sp_mini/config.h b/keyboards/viktus/sp_mini/config.h
index 06b8c2f51a82..a0671c97f3c3 100644
--- a/keyboards/viktus/sp_mini/config.h
+++ b/keyboards/viktus/sp_mini/config.h
@@ -95,5 +95,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/viktus/styrka/config.h b/keyboards/viktus/styrka/config.h
index 9fe66a8b58f6..666ebbf86689 100644
--- a/keyboards/viktus/styrka/config.h
+++ b/keyboards/viktus/styrka/config.h
@@ -105,5 +105,3 @@ B0, which is unconnected on the PCB
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/vitamins_included/rev1/config.h b/keyboards/vitamins_included/rev1/config.h
index e8390aa27bf8..675dae1044e2 100644
--- a/keyboards/vitamins_included/rev1/config.h
+++ b/keyboards/vitamins_included/rev1/config.h
@@ -79,5 +79,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/vitamins_included/rev2/config.h b/keyboards/vitamins_included/rev2/config.h
index bab387ce6882..6ea80ec05a29 100644
--- a/keyboards/vitamins_included/rev2/config.h
+++ b/keyboards/vitamins_included/rev2/config.h
@@ -80,5 +80,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/waldo/config.h b/keyboards/waldo/config.h
index fda26c4355a4..b4fac7a60617 100644
--- a/keyboards/waldo/config.h
+++ b/keyboards/waldo/config.h
@@ -64,8 +64,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// RGB LED
#define RGB_DI_PIN B0
@@ -76,4 +74,4 @@ along with this program. If not, see .
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP
-#endif
\ No newline at end of file
+#endif
diff --git a/keyboards/wavtype/foundation/config.h b/keyboards/wavtype/foundation/config.h
index e19ea19f7e01..dff85685e1dd 100644
--- a/keyboards/wavtype/foundation/config.h
+++ b/keyboards/wavtype/foundation/config.h
@@ -127,10 +127,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
diff --git a/keyboards/wekey/polaris/config.h b/keyboards/wekey/polaris/config.h
index 621d30df5a5a..5902c4bfc986 100644
--- a/keyboards/wekey/polaris/config.h
+++ b/keyboards/wekey/polaris/config.h
@@ -143,10 +143,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/wekey/stelo65/config.h b/keyboards/wekey/stelo65/config.h
index 6a5ab4bb9864..6bcd065ac410 100644
--- a/keyboards/wekey/stelo65/config.h
+++ b/keyboards/wekey/stelo65/config.h
@@ -141,10 +141,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/wekey/we27/config.h b/keyboards/wekey/we27/config.h
index 851e85aabbb5..9420a4d06a81 100644
--- a/keyboards/wekey/we27/config.h
+++ b/keyboards/wekey/we27/config.h
@@ -222,10 +222,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/westfoxtrot/cyclops/config.h b/keyboards/westfoxtrot/cyclops/config.h
index ce5d3bbbc1e0..0ecd64ecd06a 100644
--- a/keyboards/westfoxtrot/cyclops/config.h
+++ b/keyboards/westfoxtrot/cyclops/config.h
@@ -101,8 +101,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/whale/sk/v3/config.h b/keyboards/whale/sk/v3/config.h
index 8fff28ca725b..fc1e4ffeff85 100644
--- a/keyboards/whale/sk/v3/config.h
+++ b/keyboards/whale/sk/v3/config.h
@@ -47,7 +47,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/wilba_tech/rama_works_kara/config.h b/keyboards/wilba_tech/rama_works_kara/config.h
index 724098257bd1..1191c0991fd4 100644
--- a/keyboards/wilba_tech/rama_works_kara/config.h
+++ b/keyboards/wilba_tech/rama_works_kara/config.h
@@ -63,8 +63,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h
index ab00f30d7f19..334070472f96 100644
--- a/keyboards/wilba_tech/rama_works_koyu/config.h
+++ b/keyboards/wilba_tech/rama_works_koyu/config.h
@@ -66,8 +66,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/rama_works_m10_b/config.h b/keyboards/wilba_tech/rama_works_m10_b/config.h
index d30cf7fe84e4..9f3326cabac4 100644
--- a/keyboards/wilba_tech/rama_works_m10_b/config.h
+++ b/keyboards/wilba_tech/rama_works_m10_b/config.h
@@ -105,7 +105,5 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define DYNAMIC_KEYMAP_LAYER_COUNT 10
diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h
index 08ae1d081a97..7b515736f72e 100644
--- a/keyboards/wilba_tech/rama_works_m10_c/config.h
+++ b/keyboards/wilba_tech/rama_works_m10_c/config.h
@@ -53,10 +53,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
// IS31FL3731 driver
#define DRIVER_COUNT 1
#define DRIVER_LED_TOTAL 12
diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h
index c16afd7900ae..70b35dbb90e0 100644
--- a/keyboards/wilba_tech/rama_works_m50_a/config.h
+++ b/keyboards/wilba_tech/rama_works_m50_a/config.h
@@ -53,10 +53,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
// IS31FL3731 driver
#define DRIVER_COUNT 2
#define DRIVER_LED_TOTAL 72
diff --git a/keyboards/wilba_tech/rama_works_m50_ax/config.h b/keyboards/wilba_tech/rama_works_m50_ax/config.h
index 61887e8fc3ca..3b2a23033d4d 100644
--- a/keyboards/wilba_tech/rama_works_m50_ax/config.h
+++ b/keyboards/wilba_tech/rama_works_m50_ax/config.h
@@ -52,7 +52,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h
index b8d9249dde2e..4bb0ebefc6a9 100644
--- a/keyboards/wilba_tech/rama_works_m60_a/config.h
+++ b/keyboards/wilba_tech/rama_works_m60_a/config.h
@@ -63,8 +63,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h
index 2bc32a700687..0cb3e211ba47 100644
--- a/keyboards/wilba_tech/rama_works_u80_a/config.h
+++ b/keyboards/wilba_tech/rama_works_u80_a/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// IS31FL3731 driver
#define DRIVER_COUNT 3
diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h
index 587c9b9ae797..029b228e2ca9 100644
--- a/keyboards/wilba_tech/wt60_a/config.h
+++ b/keyboards/wilba_tech/wt60_a/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// enable the mono backlight
#define MONO_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt60_d/config.h b/keyboards/wilba_tech/wt60_d/config.h
index e6d367f4b1ce..c3c0a0c7a68a 100644
--- a/keyboards/wilba_tech/wt60_d/config.h
+++ b/keyboards/wilba_tech/wt60_d/config.h
@@ -104,5 +104,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/wilba_tech/wt60_xt/config.h b/keyboards/wilba_tech/wt60_xt/config.h
index 43f3f70db80f..f08d3179ef5f 100644
--- a/keyboards/wilba_tech/wt60_xt/config.h
+++ b/keyboards/wilba_tech/wt60_xt/config.h
@@ -107,5 +107,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h
index 4eca9b3ba0f2..46df641ae4a9 100644
--- a/keyboards/wilba_tech/wt65_a/config.h
+++ b/keyboards/wilba_tech/wt65_a/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// enable the mono backlight
#define MONO_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h
index 7db0552ce6c8..bc81515c1941 100644
--- a/keyboards/wilba_tech/wt65_b/config.h
+++ b/keyboards/wilba_tech/wt65_b/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// enable the mono backlight
#define MONO_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt69_a/config.h b/keyboards/wilba_tech/wt69_a/config.h
index d8184a8d2e7b..7db475ba6062 100644
--- a/keyboards/wilba_tech/wt69_a/config.h
+++ b/keyboards/wilba_tech/wt69_a/config.h
@@ -104,5 +104,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h
index 479cdda00d67..6562e65fcce2 100644
--- a/keyboards/wilba_tech/wt75_a/config.h
+++ b/keyboards/wilba_tech/wt75_a/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// enable the mono backlight
#define MONO_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h
index e6365c4ef3e0..a8905fc2ccd9 100644
--- a/keyboards/wilba_tech/wt75_b/config.h
+++ b/keyboards/wilba_tech/wt75_b/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// enable the mono backlight
#define MONO_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h
index bbc4757e06e3..8e65c1a14991 100644
--- a/keyboards/wilba_tech/wt75_c/config.h
+++ b/keyboards/wilba_tech/wt75_c/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// enable the mono backlight
#define MONO_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h
index a09bcaebad48..de4de0af2bfa 100644
--- a/keyboards/wilba_tech/wt80_a/config.h
+++ b/keyboards/wilba_tech/wt80_a/config.h
@@ -104,8 +104,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// enable the mono backlight
#define MONO_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h
index 2ccf49d80a8b..12093be63ad5 100644
--- a/keyboards/wilba_tech/zeal60/config.h
+++ b/keyboards/wilba_tech/zeal60/config.h
@@ -63,8 +63,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h
index 40d021801425..eff5502ebc4e 100644
--- a/keyboards/wilba_tech/zeal65/config.h
+++ b/keyboards/wilba_tech/zeal65/config.h
@@ -63,8 +63,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_BACKLIGHT_ENABLED 1
@@ -119,4 +117,4 @@
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
// VIA lighting is handled by the keyboard-level code
-#define VIA_CUSTOM_LIGHTING_ENABLE
\ No newline at end of file
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/winkeys/mini_winni/config.h b/keyboards/winkeys/mini_winni/config.h
index 821f5cdc7696..fcf700b0b3e1 100644
--- a/keyboards/winkeys/mini_winni/config.h
+++ b/keyboards/winkeys/mini_winni/config.h
@@ -62,7 +62,3 @@ along with this program. If not, see .
/* disable print */
//#define NO_PRINT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/wolf/kuku65/config.h b/keyboards/wolf/kuku65/config.h
index 7c5afed524d8..c67224a5223e 100644
--- a/keyboards/wolf/kuku65/config.h
+++ b/keyboards/wolf/kuku65/config.h
@@ -51,6 +51,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/wolf/sabre/config.h b/keyboards/wolf/sabre/config.h
index 02b897ba4f59..76ec7d6332f2 100644
--- a/keyboards/wolf/sabre/config.h
+++ b/keyboards/wolf/sabre/config.h
@@ -56,6 +56,3 @@ along with this program. If not, see .
#define LED_CAPS_LOCK_PIN B3
#define LED_SCROLL_LOCK_PIN B0
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/wolf/ts60/config.h b/keyboards/wolf/ts60/config.h
index 8074f6fc580a..4e15ab4cd5f0 100644
--- a/keyboards/wolf/ts60/config.h
+++ b/keyboards/wolf/ts60/config.h
@@ -73,6 +73,3 @@ along with this program. If not, see .
#define BACKLIGHT_PIN B7
#define BACKLIGHT_LEVELS 6
#define BACKLIGHT_DEFAULT_LEVEL 6
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
\ No newline at end of file
diff --git a/keyboards/wolfmarkclub/wm1/config.h b/keyboards/wolfmarkclub/wm1/config.h
index 135700b98838..ecbdc61eb3df 100644
--- a/keyboards/wolfmarkclub/wm1/config.h
+++ b/keyboards/wolfmarkclub/wm1/config.h
@@ -75,5 +75,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/woodkeys/meira/featherble/config.h b/keyboards/woodkeys/meira/featherble/config.h
index 94bef3b3305e..44f294a06aa4 100644
--- a/keyboards/woodkeys/meira/featherble/config.h
+++ b/keyboards/woodkeys/meira/featherble/config.h
@@ -93,5 +93,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/woodkeys/meira/promicro/config.h b/keyboards/woodkeys/meira/promicro/config.h
index bbdaa9dbd8bb..1b9b099d1a8f 100644
--- a/keyboards/woodkeys/meira/promicro/config.h
+++ b/keyboards/woodkeys/meira/promicro/config.h
@@ -84,5 +84,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/woodkeys/scarletbandana/config.h b/keyboards/woodkeys/scarletbandana/config.h
index b9c8dd9b0fbf..3afbfeae84d0 100644
--- a/keyboards/woodkeys/scarletbandana/config.h
+++ b/keyboards/woodkeys/scarletbandana/config.h
@@ -51,7 +51,4 @@ along with this program. If not, see .
#define NO_MUSIC_MODE
#endif
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define DEBOUNCE 5
diff --git a/keyboards/work_louder/loop/config.h b/keyboards/work_louder/loop/config.h
index b40c1207fef5..b397ec2c1df6 100644
--- a/keyboards/work_louder/loop/config.h
+++ b/keyboards/work_louder/loop/config.h
@@ -196,10 +196,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 11
diff --git a/keyboards/work_louder/nano/config.h b/keyboards/work_louder/nano/config.h
index ac12c8719985..4e03f0a89749 100644
--- a/keyboards/work_louder/nano/config.h
+++ b/keyboards/work_louder/nano/config.h
@@ -194,10 +194,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 2
diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h
index 78444e744f80..106184b7de0d 100644
--- a/keyboards/work_louder/work_board/config.h
+++ b/keyboards/work_louder/work_board/config.h
@@ -185,10 +185,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#define ENCODERS_PAD_A \
{ B0 }
#define ENCODERS_PAD_B \
diff --git a/keyboards/wren/config.h b/keyboards/wren/config.h
index 93b8468c1757..13e69804bc5f 100644
--- a/keyboards/wren/config.h
+++ b/keyboards/wren/config.h
@@ -116,10 +116,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/x16/config.h b/keyboards/x16/config.h
index 7dda59b948ed..8378880d08e7 100644
--- a/keyboards/x16/config.h
+++ b/keyboards/x16/config.h
@@ -133,8 +133,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h
index b91dd8db6648..be7b2bfe9f48 100644
--- a/keyboards/xbows/knight/config.h
+++ b/keyboards/xbows/knight/config.h
@@ -30,10 +30,6 @@
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 18
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h
index add7d53679c6..e9e82c13dfc2 100644
--- a/keyboards/xbows/knight_plus/config.h
+++ b/keyboards/xbows/knight_plus/config.h
@@ -30,10 +30,6 @@
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 18
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h
index 2395ae778cfd..0fc0accb5909 100644
--- a/keyboards/xbows/nature/config.h
+++ b/keyboards/xbows/nature/config.h
@@ -30,10 +30,6 @@
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 18
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h
index 96dff5241aeb..04604676bc1a 100644
--- a/keyboards/xbows/numpad/config.h
+++ b/keyboards/xbows/numpad/config.h
@@ -30,10 +30,6 @@
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 18
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h
index e5b976407418..a7bcee7b4fc1 100644
--- a/keyboards/xbows/ranger/config.h
+++ b/keyboards/xbows/ranger/config.h
@@ -30,10 +30,6 @@
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 3
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_LED_PROCESS_LIMIT 18
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h
index 375bea948611..52dab44f48c3 100644
--- a/keyboards/xelus/dawn60/rev1/config.h
+++ b/keyboards/xelus/dawn60/rev1/config.h
@@ -67,8 +67,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/xiaomi/mk02/config.h b/keyboards/xiaomi/mk02/config.h
index 4a28cf6c7168..1b029d6b4946 100644
--- a/keyboards/xiaomi/mk02/config.h
+++ b/keyboards/xiaomi/mk02/config.h
@@ -55,5 +55,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/xiudi/xd004/v1/config.h b/keyboards/xiudi/xd004/v1/config.h
index 30f837b8ced1..826540de4c04 100644
--- a/keyboards/xiudi/xd004/v1/config.h
+++ b/keyboards/xiudi/xd004/v1/config.h
@@ -75,5 +75,3 @@ further optimizations can be done on that side.
/* disable action features */
// #define NO_ACTION_ONESHOT // 462 bytes <- this needs to be un-commented out if Link Time Optimization is disabled, otherwise file is too large
// The two below are implicit since we use LTO_ENABLE (in rules.mk)
-// #define NO_ACTION_MACRO
-// #define NO_ACTION_FUNCTION
diff --git a/keyboards/xiudi/xd68/config.h b/keyboards/xiudi/xd68/config.h
index 4fbb66b81533..af8e8b7dab09 100644
--- a/keyboards/xiudi/xd68/config.h
+++ b/keyboards/xiudi/xd68/config.h
@@ -103,8 +103,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
// ws2812 options
#define RGB_DI_PIN F6 // pin the DI on the ws2812 is hooked-up to
diff --git a/keyboards/xiudi/xd75/config.h b/keyboards/xiudi/xd75/config.h
index 2958a49ebe4f..9cceea346755 100644
--- a/keyboards/xiudi/xd75/config.h
+++ b/keyboards/xiudi/xd75/config.h
@@ -133,10 +133,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/xiudi/xd84/config.h b/keyboards/xiudi/xd84/config.h
index bba8cf55667f..a96793cd7518 100644
--- a/keyboards/xiudi/xd84/config.h
+++ b/keyboards/xiudi/xd84/config.h
@@ -131,8 +131,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/xiudi/xd84pro/config.h b/keyboards/xiudi/xd84pro/config.h
index 01f410ea6b5c..797d209db3e8 100644
--- a/keyboards/xiudi/xd84pro/config.h
+++ b/keyboards/xiudi/xd84pro/config.h
@@ -73,6 +73,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/xiudi/xd87/config.h b/keyboards/xiudi/xd87/config.h
index 41e8bf36905e..5f5b704f3642 100644
--- a/keyboards/xiudi/xd87/config.h
+++ b/keyboards/xiudi/xd87/config.h
@@ -120,6 +120,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/xiudi/xd96/config.h b/keyboards/xiudi/xd96/config.h
index 5ec2543ffa77..ddf97f9d00d9 100644
--- a/keyboards/xiudi/xd96/config.h
+++ b/keyboards/xiudi/xd96/config.h
@@ -132,8 +132,6 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/yampad/config.h b/keyboards/yampad/config.h
index b21a606ddc97..2e03580060db 100644
--- a/keyboards/yampad/config.h
+++ b/keyboards/yampad/config.h
@@ -77,8 +77,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ydkb/chili/config.h b/keyboards/ydkb/chili/config.h
index 13bd700363b1..e3a4e004b8a7 100644
--- a/keyboards/ydkb/chili/config.h
+++ b/keyboards/ydkb/chili/config.h
@@ -108,5 +108,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ydkb/just60/config.h b/keyboards/ydkb/just60/config.h
index b2ff1563104b..82272ffffaef 100644
--- a/keyboards/ydkb/just60/config.h
+++ b/keyboards/ydkb/just60/config.h
@@ -45,7 +45,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/ydkb/yd68/config.h b/keyboards/ydkb/yd68/config.h
index a501a984766f..40a06093471b 100644
--- a/keyboards/ydkb/yd68/config.h
+++ b/keyboards/ydkb/yd68/config.h
@@ -117,6 +117,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/yiancardesigns/barleycorn/config.h b/keyboards/yiancardesigns/barleycorn/config.h
index 77714a87fcd7..71c6076d46c5 100644
--- a/keyboards/yiancardesigns/barleycorn/config.h
+++ b/keyboards/yiancardesigns/barleycorn/config.h
@@ -99,5 +99,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/yiancardesigns/gingham/config.h b/keyboards/yiancardesigns/gingham/config.h
index 62f25b06c9f2..5dcc1efa1924 100644
--- a/keyboards/yiancardesigns/gingham/config.h
+++ b/keyboards/yiancardesigns/gingham/config.h
@@ -133,6 +133,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
diff --git a/keyboards/yiancardesigns/seigaiha/config.h b/keyboards/yiancardesigns/seigaiha/config.h
index 5e87bd6f8375..fdb957f7836d 100644
--- a/keyboards/yiancardesigns/seigaiha/config.h
+++ b/keyboards/yiancardesigns/seigaiha/config.h
@@ -101,5 +101,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/ymdk/np21/config.h b/keyboards/ymdk/np21/config.h
index 83423792b05f..762ac2b4bf15 100644
--- a/keyboards/ymdk/np21/config.h
+++ b/keyboards/ymdk/np21/config.h
@@ -130,10 +130,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ymdk/sp64/config.h b/keyboards/ymdk/sp64/config.h
index d3395c7841f3..38880d1a850e 100644
--- a/keyboards/ymdk/sp64/config.h
+++ b/keyboards/ymdk/sp64/config.h
@@ -30,10 +30,6 @@ along with this program. If not, see .
#define RIGHT_HALF
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* RGB underglow */
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
diff --git a/keyboards/ymdk/ymd09/config.h b/keyboards/ymdk/ymd09/config.h
index f379abde5f1c..0152fe1c2b9a 100644
--- a/keyboards/ymdk/ymd09/config.h
+++ b/keyboards/ymdk/ymd09/config.h
@@ -57,7 +57,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/yoichiro/lunakey_macro/config.h b/keyboards/yoichiro/lunakey_macro/config.h
index d68f69f5150c..1b9449b822bc 100644
--- a/keyboards/yoichiro/lunakey_macro/config.h
+++ b/keyboards/yoichiro/lunakey_macro/config.h
@@ -149,10 +149,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/yoichiro/lunakey_mini/config.h b/keyboards/yoichiro/lunakey_mini/config.h
index abbecef44336..da75f3be5f21 100644
--- a/keyboards/yoichiro/lunakey_mini/config.h
+++ b/keyboards/yoichiro/lunakey_mini/config.h
@@ -144,10 +144,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/yosino58/config.h b/keyboards/yosino58/config.h
index 0c308480eec1..24831ee5b2da 100644
--- a/keyboards/yosino58/config.h
+++ b/keyboards/yosino58/config.h
@@ -23,6 +23,3 @@ along with this program. If not, see .
#define USE_I2C
#define USE_SERIAL
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/yosino58/rev1/config.h b/keyboards/yosino58/rev1/config.h
index ce792d18c4bc..b7bbace5d98f 100644
--- a/keyboards/yosino58/rev1/config.h
+++ b/keyboards/yosino58/rev1/config.h
@@ -67,5 +67,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/yugo_m/model_m_101/config.h b/keyboards/yugo_m/model_m_101/config.h
index 76580a60e404..94861a7587d5 100644
--- a/keyboards/yugo_m/model_m_101/config.h
+++ b/keyboards/yugo_m/model_m_101/config.h
@@ -96,5 +96,3 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
diff --git a/keyboards/yushakobo/navpad/10/config.h b/keyboards/yushakobo/navpad/10/config.h
index c242ee60e209..0dddfb4d0250 100644
--- a/keyboards/yushakobo/navpad/10/config.h
+++ b/keyboards/yushakobo/navpad/10/config.h
@@ -70,10 +70,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
@@ -81,4 +77,4 @@ along with this program. If not, see .
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 132
-#define TAPPING_LAYER_TERM 90
\ No newline at end of file
+#define TAPPING_LAYER_TERM 90
diff --git a/keyboards/yushakobo/navpad/10_helix_r/config.h b/keyboards/yushakobo/navpad/10_helix_r/config.h
index 2d6288532828..3d463549dfae 100644
--- a/keyboards/yushakobo/navpad/10_helix_r/config.h
+++ b/keyboards/yushakobo/navpad/10_helix_r/config.h
@@ -112,10 +112,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
@@ -123,4 +119,4 @@ along with this program. If not, see .
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 132
-#define TAPPING_LAYER_TERM 90
\ No newline at end of file
+#define TAPPING_LAYER_TERM 90
diff --git a/keyboards/yushakobo/quick17/config.h b/keyboards/yushakobo/quick17/config.h
index ab33c8408233..7c845a2106b3 100644
--- a/keyboards/yushakobo/quick17/config.h
+++ b/keyboards/yushakobo/quick17/config.h
@@ -134,10 +134,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/yushakobo/quick7/config.h b/keyboards/yushakobo/quick7/config.h
index 01cc0f0a8745..f3afcd2df79c 100644
--- a/keyboards/yushakobo/quick7/config.h
+++ b/keyboards/yushakobo/quick7/config.h
@@ -137,12 +137,6 @@ along with this program. If not, see .
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#ifndef LTO_ENABLE
- #define NO_ACTION_MACRO
- #define NO_ACTION_FUNCTION
-#endif
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/yynmt/acperience12/rev1/config.h b/keyboards/yynmt/acperience12/rev1/config.h
index 7281f9bf7feb..d1adb8106ced 100644
--- a/keyboards/yynmt/acperience12/rev1/config.h
+++ b/keyboards/yynmt/acperience12/rev1/config.h
@@ -44,7 +44,3 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/yynmt/dozen0/config.h b/keyboards/yynmt/dozen0/config.h
index 48d847bde123..c63af586e6e3 100644
--- a/keyboards/yynmt/dozen0/config.h
+++ b/keyboards/yynmt/dozen0/config.h
@@ -114,8 +114,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/yynmt/kagamidget/config.h b/keyboards/yynmt/kagamidget/config.h
index 2bf5b8d7f8f7..3a0ddeaf3078 100644
--- a/keyboards/yynmt/kagamidget/config.h
+++ b/keyboards/yynmt/kagamidget/config.h
@@ -109,8 +109,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/ziggurat/config.h b/keyboards/ziggurat/config.h
index 9c38f5e796af..d2332a3e48e9 100644
--- a/keyboards/ziggurat/config.h
+++ b/keyboards/ziggurat/config.h
@@ -40,7 +40,3 @@ along with this program. If not, see .
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/zoo/wampus/config.h b/keyboards/zoo/wampus/config.h
index f572c91fc7f0..7da55184a099 100644
--- a/keyboards/zoo/wampus/config.h
+++ b/keyboards/zoo/wampus/config.h
@@ -87,7 +87,3 @@ along with this program. If not, see .
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/zvecr/split_blackpill/config.h b/keyboards/zvecr/split_blackpill/config.h
index c6ca34779a97..75a7ced350d7 100644
--- a/keyboards/zvecr/split_blackpill/config.h
+++ b/keyboards/zvecr/split_blackpill/config.h
@@ -115,10 +115,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/zvecr/zv48/config.h b/keyboards/zvecr/zv48/config.h
index 881282c2865d..56be1b27d206 100644
--- a/keyboards/zvecr/zv48/config.h
+++ b/keyboards/zvecr/zv48/config.h
@@ -121,10 +121,6 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-/* disable these deprecated features by default */
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
From a808c297269573f8f18b45d750405e2238302bc2 Mon Sep 17 00:00:00 2001
From: Tom Konidas
Date: Tue, 15 Mar 2022 18:48:13 -0400
Subject: [PATCH 042/221] [Keymap] Planck Keymap: tomkonidas (#15869)
---
keyboards/planck/keymaps/tomkonidas/config.h | 46 +++
keyboards/planck/keymaps/tomkonidas/keymap.c | 353 ++++++++++++++++++
keyboards/planck/keymaps/tomkonidas/readme.md | 101 +++++
keyboards/planck/keymaps/tomkonidas/rules.mk | 1 +
4 files changed, 501 insertions(+)
create mode 100644 keyboards/planck/keymaps/tomkonidas/config.h
create mode 100644 keyboards/planck/keymaps/tomkonidas/keymap.c
create mode 100644 keyboards/planck/keymaps/tomkonidas/readme.md
create mode 100644 keyboards/planck/keymaps/tomkonidas/rules.mk
diff --git a/keyboards/planck/keymaps/tomkonidas/config.h b/keyboards/planck/keymaps/tomkonidas/config.h
new file mode 100644
index 000000000000..6e6d0f3ac731
--- /dev/null
+++ b/keyboards/planck/keymaps/tomkonidas/config.h
@@ -0,0 +1,46 @@
+/* Copyright 2015-2021 Jack Humbert
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#ifdef AUDIO_ENABLE
+# define STARTUP_SONG SONG(PLANCK_SOUND)
+// #define STARTUP_SONG SONG(NO_SOUND)
+
+# define DEFAULT_LAYER_SONGS \
+ { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
+#endif
+
+/*
+ * MIDI options
+ */
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+// Most tactile encoders have detents every 4 stages
+#define ENCODER_RESOLUTION 4
diff --git a/keyboards/planck/keymaps/tomkonidas/keymap.c b/keyboards/planck/keymaps/tomkonidas/keymap.c
new file mode 100644
index 000000000000..39933e8a2113
--- /dev/null
+++ b/keyboards/planck/keymaps/tomkonidas/keymap.c
@@ -0,0 +1,353 @@
+/* Copyright 2015-2021 Jack Humbert
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+#include "muse.h"
+
+
+enum planck_layers {
+ _DVORAK,
+ _QWERTY,
+ _COLEMAK,
+ _LOWER,
+ _RAISE,
+ _PLOVER,
+ _ADJUST
+};
+
+enum planck_keycodes {
+ DVORAK = SAFE_RANGE,
+ QWERTY,
+ COLEMAK,
+ PLOVER,
+ BACKLIT,
+ EXT_PLV
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Brite | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT_planck_grid(
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
+ KC_LCTL, KC_LALT, BACKLIT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Brite | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_planck_grid(
+ 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_ESC, 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, BACKLIT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Brite | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT_planck_grid(
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ KC_LCTL, KC_LALT, BACKLIT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_planck_grid(
+ 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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_planck_grid(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Plover layer (http://opensteno.org)
+ * ,-----------------------------------------------------------------------------------.
+ * | # | # | # | # | # | # | # | # | # | # | # | # |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | S | T | P | H | * | * | F | P | L | T | D |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | S | K | W | R | * | * | R | B | G | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Exit | | | A | O | | | E | U | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_PLOVER] = LAYOUT_planck_grid(
+ KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
+ XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
+),
+
+/* Adjust (Lower + Raise)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_planck_grid(
+ _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
+#ifdef AUDIO_ENABLE
+ float plover_song[][2] = SONG(PLOVER_SOUND);
+ float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
+#endif
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ print("mode just switched to qwerty and this is a huge string\n");
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ #ifdef KEYBOARD_planck_rev5
+ writePinLow(E6);
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ #ifdef KEYBOARD_planck_rev5
+ writePinHigh(E6);
+ #endif
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_SONG(plover_song);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_SONG(plover_gb_song);
+ #endif
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (muse_mode) {
+ if (IS_LAYER_ON(_RAISE)) {
+ if (clockwise) {
+ muse_offset++;
+ } else {
+ muse_offset--;
+ }
+ } else {
+ if (clockwise) {
+ muse_tempo+=1;
+ } else {
+ muse_tempo-=1;
+ }
+ }
+ } else {
+ if (clockwise) {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_DOWN);
+ #else
+ tap_code(KC_PGDN);
+ #endif
+ } else {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_UP);
+ #else
+ tap_code(KC_PGUP);
+ #endif
+ }
+ }
+ return true;
+}
+
+bool dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0: {
+#ifdef AUDIO_ENABLE
+ static bool play_sound = false;
+#endif
+ if (active) {
+#ifdef AUDIO_ENABLE
+ if (play_sound) { PLAY_SONG(plover_song); }
+#endif
+ layer_on(_ADJUST);
+ } else {
+#ifdef AUDIO_ENABLE
+ if (play_sound) { PLAY_SONG(plover_gb_song); }
+#endif
+ layer_off(_ADJUST);
+ }
+#ifdef AUDIO_ENABLE
+ play_sound = true;
+#endif
+ break;
+ }
+ case 1:
+ if (active) {
+ muse_mode = true;
+ } else {
+ muse_mode = false;
+ }
+ }
+ return true;
+}
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+ if (muse_mode) {
+ if (muse_counter == 0) {
+ uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+ if (muse_note != last_muse_note) {
+ stop_note(compute_freq_for_midi_note(last_muse_note));
+ play_note(compute_freq_for_midi_note(muse_note), 0xF);
+ last_muse_note = muse_note;
+ }
+ }
+ muse_counter = (muse_counter + 1) % muse_tempo;
+ } else {
+ if (muse_counter) {
+ stop_all_notes();
+ muse_counter = 0;
+ }
+ }
+#endif
+}
+
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case RAISE:
+ case LOWER:
+ return false;
+ default:
+ return true;
+ }
+}
diff --git a/keyboards/planck/keymaps/tomkonidas/readme.md b/keyboards/planck/keymaps/tomkonidas/readme.md
new file mode 100644
index 000000000000..34c2147604e9
--- /dev/null
+++ b/keyboards/planck/keymaps/tomkonidas/readme.md
@@ -0,0 +1,101 @@
+# Planck Rev6 Layers
+
+```
+ Dvorak
+ ,-----------------------------------------------------------------------------------.
+ | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | Alt | Brite | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ `-----------------------------------------------------------------------------------'
+
+```
+
+```
+ Qwerty
+ ,-----------------------------------------------------------------------------------.
+ | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | Alt | Brite | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ `-----------------------------------------------------------------------------------'
+
+```
+
+```
+ Colemak
+ ,-----------------------------------------------------------------------------------.
+ | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Esc | A | R | S | T | D | H | N | E | I | O | " |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | Alt | Brite | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ `-----------------------------------------------------------------------------------'
+
+```
+
+```
+ Lower
+ ,-----------------------------------------------------------------------------------.
+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | | | | | | | | Next | Vol- | Vol+ | Play |
+ `-----------------------------------------------------------------------------------'
+
+```
+
+```
+ Raise
+ ,-----------------------------------------------------------------------------------.
+ | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | | | | | | | | Next | Vol- | Vol+ | Play |
+ `-----------------------------------------------------------------------------------'
+
+```
+
+
+```
+ Adjust (Lower + Raise)
+ v------------------------RGB CONTROL--------------------v
+ ,-----------------------------------------------------------------------------------.
+ | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | | | | | | | | | | | |
+ `-----------------------------------------------------------------------------------'
+
+```
+
+```
+ Plover layer (http://opensteno.org)
+ ,-----------------------------------------------------------------------------------.
+ | # | # | # | # | # | # | # | # | # | # | # | # |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | S | T | P | H | * | * | F | P | L | T | D |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | S | K | W | R | * | * | R | B | G | S | Z |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Exit | | | A | O | | | E | U | | | |
+ `-----------------------------------------------------------------------------------'
+
+```
diff --git a/keyboards/planck/keymaps/tomkonidas/rules.mk b/keyboards/planck/keymaps/tomkonidas/rules.mk
new file mode 100644
index 000000000000..dcf16bef3994
--- /dev/null
+++ b/keyboards/planck/keymaps/tomkonidas/rules.mk
@@ -0,0 +1 @@
+SRC += muse.c
From 77aafd80562e0a3d4b91f1077f029e47ffb852f1 Mon Sep 17 00:00:00 2001
From: Moritz
Date: Tue, 15 Mar 2022 23:58:16 +0100
Subject: [PATCH 043/221] [Keyboard] Add Dolice keyboard (#16186)
---
keyboards/linworks/dolice/config.h | 47 +++
keyboards/linworks/dolice/dolice.c | 16 +
keyboards/linworks/dolice/dolice.h | 93 ++++++
keyboards/linworks/dolice/info.json | 282 ++++++++++++++++++
.../linworks/dolice/keymaps/default/keymap.c | 33 ++
.../linworks/dolice/keymaps/via/keymap.c | 47 +++
.../linworks/dolice/keymaps/via/rules.mk | 1 +
keyboards/linworks/dolice/readme.md | 21 ++
keyboards/linworks/dolice/rules.mk | 18 ++
9 files changed, 558 insertions(+)
create mode 100644 keyboards/linworks/dolice/config.h
create mode 100644 keyboards/linworks/dolice/dolice.c
create mode 100644 keyboards/linworks/dolice/dolice.h
create mode 100644 keyboards/linworks/dolice/info.json
create mode 100644 keyboards/linworks/dolice/keymaps/default/keymap.c
create mode 100644 keyboards/linworks/dolice/keymaps/via/keymap.c
create mode 100644 keyboards/linworks/dolice/keymaps/via/rules.mk
create mode 100644 keyboards/linworks/dolice/readme.md
create mode 100644 keyboards/linworks/dolice/rules.mk
diff --git a/keyboards/linworks/dolice/config.h b/keyboards/linworks/dolice/config.h
new file mode 100644
index 000000000000..b42fda933f26
--- /dev/null
+++ b/keyboards/linworks/dolice/config.h
@@ -0,0 +1,47 @@
+/*
+Copyright 2021 Moritz Plattner
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4C58 //"LX"
+#define PRODUCT_ID 0x0004
+#define DEVICE_VER 0x0001
+#define MANUFACTURER KLC
+#define PRODUCT Dolice
+
+/* Set 1 kHz polling rate and force USB NKRO */
+#define USB_POLLING_INTERVAL_MS 1
+#define FORCE_NKRO
+
+/* key matrix size */
+#define MATRIX_ROWS 9
+#define MATRIX_COLS 8
+
+#define MATRIX_ROW_PINS { F5, F4, F6, F7, B0, B7, D7, D6, D4 }
+#define MATRIX_COL_PINS { E6, F0, F1, B4, D5, D3, D2, B2 }
+#define UNUSED_PINS { B1, B3, D0, D1, E2 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Backlight */
+#define BACKLIGHT_PIN B5 // Timer 1 on mega32u4
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_ON_STATE 1
diff --git a/keyboards/linworks/dolice/dolice.c b/keyboards/linworks/dolice/dolice.c
new file mode 100644
index 000000000000..febac2099ffe
--- /dev/null
+++ b/keyboards/linworks/dolice/dolice.c
@@ -0,0 +1,16 @@
+/* Copyright 2021 Moritz Plattner
+ *
+ * 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 .
+ */
+#include "dolice.h"
diff --git a/keyboards/linworks/dolice/dolice.h b/keyboards/linworks/dolice/dolice.h
new file mode 100644
index 000000000000..22a9338cf306
--- /dev/null
+++ b/keyboards/linworks/dolice/dolice.h
@@ -0,0 +1,93 @@
+/* Copyright 221 Moritz Plattner
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_alice( \
+ K00, K10, K01, K11, K02, K12, K03, K13, K14, K05, K15, K06, K16, K07, K17, \
+ K20, K30, K21, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, \
+ K40, K50, K41, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, \
+ K70, K61, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67, K77, \
+ K80, K81, K82, K83, K84, K85, K87 \
+) { \
+ { K00, K01, K02, K03, KC_NO, K05, K06, K07, }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, }, \
+ { K50, KC_NO, K52, K53, K54, K55, K56, KC_NO, }, \
+ { KC_NO, K61, K62, K63, K64, K65, K66, K67, }, \
+ { K70, KC_NO, K72, K73, K74, K75, K76, K77, }, \
+ { K80, K81, K82, K83, K84, K85, KC_NO, K87 } \
+}
+
+#define LAYOUT_alice_split_bs( \
+ K00, K10, K01, K11, K02, K12, K03, K13, K14, K05, K15, K06, K16, K07, K17, K57, \
+ K20, K30, K21, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, \
+ K40, K50, K41, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, \
+ K70, K61, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67, K77, \
+ K80, K81, K82, K83, K84, K85, K87 \
+) { \
+ { K00, K01, K02, K03, KC_NO, K05, K06, K07, }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, }, \
+ { K50, KC_NO, K52, K53, K54, K55, K56, K57, }, \
+ { KC_NO, K61, K62, K63, K64, K65, K66, K67, }, \
+ { K70, KC_NO, K72, K73, K74, K75, K76, K77, }, \
+ { K80, K81, K82, K83, K84, K85, KC_NO, K87 } \
+}
+
+#define LAYOUT_long_rshift( \
+ K00, K10, K01, K11, K02, K12, K03, K13, K14, K05, K15, K06, K16, K07, K17, \
+ K20, K30, K21, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, \
+ K40, K50, K41, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, \
+ K70, K61, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67, \
+ K80, K81, K82, K83, K84, K85, K87 \
+) { \
+ { K00, K01, K02, K03, KC_NO, K05, K06, K07, }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, }, \
+ { K50, KC_NO, K52, K53, K54, K55, K56, KC_NO, }, \
+ { KC_NO, K61, K62, K63, K64, K65, K66, K67, }, \
+ { K70, KC_NO, K72, K73, K74, K75, K76, KC_NO, }, \
+ { K80, K81, K82, K83, K84, K85, KC_NO, K87 } \
+}
+
+#define LAYOUT_long_rshift_split_bs( \
+ K00, K10, K01, K11, K02, K12, K03, K13, K14, K05, K15, K06, K16, K07, K17, K57, \
+ K20, K30, K21, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, \
+ K40, K50, K41, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, \
+ K70, K61, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67, \
+ K80, K81, K82, K83, K84, K85, K87 \
+) { \
+ { K00, K01, K02, K03, KC_NO, K05, K06, K07, }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, }, \
+ { K50, KC_NO, K52, K53, K54, K55, K56, K57, }, \
+ { KC_NO, K61, K62, K63, K64, K65, K66, K67, }, \
+ { K70, KC_NO, K72, K73, K74, K75, K76, KC_NO, }, \
+ { K80, K81, K82, K83, K84, K85, KC_NO, K87 } \
+}
+
+#define LAYOUT_all LAYOUT_alice_split_bs
\ No newline at end of file
diff --git a/keyboards/linworks/dolice/info.json b/keyboards/linworks/dolice/info.json
new file mode 100644
index 000000000000..5a72496f1c96
--- /dev/null
+++ b/keyboards/linworks/dolice/info.json
@@ -0,0 +1,282 @@
+{
+ "keyboard_name": "Dolice",
+ "maintainer": "ebastler",
+ "layouts": {
+ "LAYOUT_alice": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.25, "y":0},
+ {"x":6.25, "y":0},
+ {"x":7.25, "y":0},
+ {"x":10.25, "y":0},
+ {"x":11.25, "y":0},
+ {"x":12.25, "y":0},
+ {"x":13.25, "y":0},
+ {"x":14.25, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0, "w": 2},
+ {"x":0, "y":1},
+ {"x":1.25, "y":1, "w":1.5},
+ {"x":2.75, "y":1},
+ {"x":3.75, "y":1},
+ {"x":4.75, "y":1},
+ {"x":5.75, "y":1},
+ {"x":6.75, "y":1},
+ {"x":9.75, "y":1},
+ {"x":10.75, "y":1},
+ {"x":11.75, "y":1},
+ {"x":12.75, "y":1},
+ {"x":13.75, "y":1},
+ {"x":14.75, "y":1},
+ {"x":15.75, "y":1},
+ {"x":16.75, "y":1, "w":1.5},
+ {"x":0, "y":2},
+ {"x":1.25, "y":2, "w":1.75},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+ {"x":13, "y":2},
+ {"x":14, "y":2},
+ {"x":15, "y":2},
+ {"x":16, "y":2, "w":2.25},
+ {"x":1.25, "y":3, "w":2.25},
+ {"x":3.5, "y":3},
+ {"x":4.5, "y":3},
+ {"x":5.5, "y":3},
+ {"x":6.5, "y":3},
+ {"x":7.5, "y":3},
+ {"x":9.5, "y":3},
+ {"x":10.5, "y":3},
+ {"x":11.5, "y":3},
+ {"x":12.5, "y":3},
+ {"x":13.5, "y":3},
+ {"x":14.5, "y":3},
+ {"x":15.5, "y":3, "w":1.75},
+ {"x":17.25, "y":3},
+ {"x":1.25, "y":4, "w":1.5},
+ {"x":4.25, "y":4, "w":1.5},
+ {"x":5.75, "y":4, "w":2},
+ {"x":7.75, "y":4, "w":1.25},
+ {"x":9.5, "y":4, "w":2.75},
+ {"x":12.25, "y":4, "w":1.5},
+ {"x":16.75, "y":4, "w":1.5}
+ ]
+ },
+ "LAYOUT_alice_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.25, "y":0},
+ {"x":6.25, "y":0},
+ {"x":7.25, "y":0},
+ {"x":10.25, "y":0},
+ {"x":11.25, "y":0},
+ {"x":12.25, "y":0},
+ {"x":13.25, "y":0},
+ {"x":14.25, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":0, "y":1},
+ {"x":1.25, "y":1, "w":1.5},
+ {"x":2.75, "y":1},
+ {"x":3.75, "y":1},
+ {"x":4.75, "y":1},
+ {"x":5.75, "y":1},
+ {"x":6.75, "y":1},
+ {"x":9.75, "y":1},
+ {"x":10.75, "y":1},
+ {"x":11.75, "y":1},
+ {"x":12.75, "y":1},
+ {"x":13.75, "y":1},
+ {"x":14.75, "y":1},
+ {"x":15.75, "y":1},
+ {"x":16.75, "y":1, "w":1.5},
+ {"x":0, "y":2},
+ {"x":1.25, "y":2, "w":1.75},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+ {"x":13, "y":2},
+ {"x":14, "y":2},
+ {"x":15, "y":2},
+ {"x":16, "y":2, "w":2.25},
+ {"x":1.25, "y":3, "w":2.25},
+ {"x":3.5, "y":3},
+ {"x":4.5, "y":3},
+ {"x":5.5, "y":3},
+ {"x":6.5, "y":3},
+ {"x":7.5, "y":3},
+ {"x":9.5, "y":3},
+ {"x":10.5, "y":3},
+ {"x":11.5, "y":3},
+ {"x":12.5, "y":3},
+ {"x":13.5, "y":3},
+ {"x":14.5, "y":3},
+ {"x":15.5, "y":3, "w":1.75},
+ {"x":17.25, "y":3},
+ {"x":1.25, "y":4, "w":1.5},
+ {"x":4.25, "y":4, "w":1.5},
+ {"x":5.75, "y":4, "w":2},
+ {"x":7.75, "y":4, "w":1.25},
+ {"x":9.5, "y":4, "w":2.75},
+ {"x":12.25, "y":4, "w":1.5},
+ {"x":16.75, "y":4, "w":1.5}
+ ]
+ },
+ "LAYOUT_long_rshift": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.25, "y":0},
+ {"x":6.25, "y":0},
+ {"x":7.25, "y":0},
+ {"x":10.25, "y":0},
+ {"x":11.25, "y":0},
+ {"x":12.25, "y":0},
+ {"x":13.25, "y":0},
+ {"x":14.25, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0, "w":2},
+ {"x":0, "y":1},
+ {"x":1.25, "y":1, "w":1.5},
+ {"x":2.75, "y":1},
+ {"x":3.75, "y":1},
+ {"x":4.75, "y":1},
+ {"x":5.75, "y":1},
+ {"x":6.75, "y":1},
+ {"x":9.75, "y":1},
+ {"x":10.75, "y":1},
+ {"x":11.75, "y":1},
+ {"x":12.75, "y":1},
+ {"x":13.75, "y":1},
+ {"x":14.75, "y":1},
+ {"x":15.75, "y":1},
+ {"x":16.75, "y":1, "w":1.5},
+ {"x":0, "y":2},
+ {"x":1.25, "y":2, "w":1.75},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+ {"x":13, "y":2},
+ {"x":14, "y":2},
+ {"x":15, "y":2},
+ {"x":16, "y":2, "w":2.25},
+ {"x":1.25, "y":3, "w":2.25},
+ {"x":3.5, "y":3},
+ {"x":4.5, "y":3},
+ {"x":5.5, "y":3},
+ {"x":6.5, "y":3},
+ {"x":7.5, "y":3},
+ {"x":9.5, "y":3},
+ {"x":10.5, "y":3},
+ {"x":11.5, "y":3},
+ {"x":12.5, "y":3},
+ {"x":13.5, "y":3},
+ {"x":14.5, "y":3},
+ {"x":15.5, "y":3, "w":2.75},
+ {"x":1.25, "y":4, "w":1.5},
+ {"x":4.25, "y":4, "w":1.5},
+ {"x":5.75, "y":4, "w":2},
+ {"x":7.75, "y":4, "w":1.25},
+ {"x":9.5, "y":4, "w":2.75},
+ {"x":12.25, "y":4, "w":1.5},
+ {"x":16.75, "y":4, "w":1.5}
+ ]
+ },
+ "LAYOUT_long_rshift_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.25, "y":0},
+ {"x":6.25, "y":0},
+ {"x":7.25, "y":0},
+ {"x":10.25, "y":0},
+ {"x":11.25, "y":0},
+ {"x":12.25, "y":0},
+ {"x":13.25, "y":0},
+ {"x":14.25, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":0, "y":1},
+ {"x":1.25, "y":1, "w":1.5},
+ {"x":2.75, "y":1},
+ {"x":3.75, "y":1},
+ {"x":4.75, "y":1},
+ {"x":5.75, "y":1},
+ {"x":6.75, "y":1},
+ {"x":9.75, "y":1},
+ {"x":10.75, "y":1},
+ {"x":11.75, "y":1},
+ {"x":12.75, "y":1},
+ {"x":13.75, "y":1},
+ {"x":14.75, "y":1},
+ {"x":15.75, "y":1},
+ {"x":16.75, "y":1, "w":1.5},
+ {"x":0, "y":2},
+ {"x":1.25, "y":2, "w":1.75},
+ {"x":3, "y":2},
+ {"x":4, "y":2},
+ {"x":5, "y":2},
+ {"x":6, "y":2},
+ {"x":7, "y":2},
+ {"x":10, "y":2},
+ {"x":11, "y":2},
+ {"x":12, "y":2},
+ {"x":13, "y":2},
+ {"x":14, "y":2},
+ {"x":15, "y":2},
+ {"x":16, "y":2, "w":2.25},
+ {"x":1.25, "y":3, "w":2.25},
+ {"x":3.5, "y":3},
+ {"x":4.5, "y":3},
+ {"x":5.5, "y":3},
+ {"x":6.5, "y":3},
+ {"x":7.5, "y":3},
+ {"x":9.5, "y":3},
+ {"x":10.5, "y":3},
+ {"x":11.5, "y":3},
+ {"x":12.5, "y":3},
+ {"x":13.5, "y":3},
+ {"x":14.5, "y":3},
+ {"x":15.5, "y":3, "w":2.75},
+ {"x":1.25, "y":4, "w":1.5},
+ {"x":4.25, "y":4, "w":1.5},
+ {"x":5.75, "y":4, "w":2},
+ {"x":7.75, "y":4, "w":1.25},
+ {"x":9.5, "y":4, "w":2.75},
+ {"x":12.25, "y":4, "w":1.5},
+ {"x":16.75, "y":4, "w":1.5}
+ ]
+ }
+ }
+ }
\ No newline at end of file
diff --git a/keyboards/linworks/dolice/keymaps/default/keymap.c b/keyboards/linworks/dolice/keymaps/default/keymap.c
new file mode 100644
index 000000000000..45f710a7a934
--- /dev/null
+++ b/keyboards/linworks/dolice/keymaps/default/keymap.c
@@ -0,0 +1,33 @@
+/* Copyright 2021 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_alice(
+ KC_PSCR, 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_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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL
+ ),
+ [1] = LAYOUT_alice(
+ KC_TRNS, 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_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
\ No newline at end of file
diff --git a/keyboards/linworks/dolice/keymaps/via/keymap.c b/keyboards/linworks/dolice/keymaps/via/keymap.c
new file mode 100644
index 000000000000..4879f3bad7bc
--- /dev/null
+++ b/keyboards/linworks/dolice/keymaps/via/keymap.c
@@ -0,0 +1,47 @@
+/* Copyright 2021 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_PSCR, 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_DEL,
+ 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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, 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_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, 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_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, 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_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
\ No newline at end of file
diff --git a/keyboards/linworks/dolice/keymaps/via/rules.mk b/keyboards/linworks/dolice/keymaps/via/rules.mk
new file mode 100644
index 000000000000..036bd6d1c3ec
--- /dev/null
+++ b/keyboards/linworks/dolice/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/linworks/dolice/readme.md b/keyboards/linworks/dolice/readme.md
new file mode 100644
index 000000000000..e46fb8261b56
--- /dev/null
+++ b/keyboards/linworks/dolice/readme.md
@@ -0,0 +1,21 @@
+# Dolice
+
+The Dolice is a alice keyboard designed by Lx3 (Linworks) and yuktsi (TGR) and run by KLC.
+
+* Keyboard maintainer: [ebastler](https://github.com/ebastler)
+* Hardware supported: Linworks/TGR/KLC Dolice
+* Hardware availability: Groupbuys. Check the ongoing ones on [the KLC Discord](https://discord.gg/d2A72mGPRB) or [Webshop](https://klc-playground.com/).
+
+Make example for this keyboard (after setting up your build environment):
+
+ make linworks/dolice:default
+
+Flash example for this keyboard:
+
+ make linworks/dolice:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Enter the bootloader:
+* **Bootmagic reset**: Hold down the top left most switch and plug in the keyboard
+* **Physical reset button**: Briefly short the pads marked "RES" and "GND" on the 6-pin programming header with tweezers
diff --git a/keyboards/linworks/dolice/rules.mk b/keyboards/linworks/dolice/rules.mk
new file mode 100644
index 000000000000..a3d10eaaaa38
--- /dev/null
+++ b/keyboards/linworks/dolice/rules.mk
@@ -0,0 +1,18 @@
+# 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 = no # 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 = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
\ No newline at end of file
From 8bffc6195959ceb3a0623595f3d4d5ac072af8c1 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Tue, 15 Mar 2022 23:27:55 +0000
Subject: [PATCH 044/221] Ensure dependent CI workflows run (#16662)
---
.github/workflows/develop_update.yml | 1 +
.github/workflows/feature_branch_update.yml | 1 +
2 files changed, 2 insertions(+)
diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml
index 1f5c841bff67..90159406a6b0 100644
--- a/.github/workflows/develop_update.yml
+++ b/.github/workflows/develop_update.yml
@@ -14,6 +14,7 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
+ token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout develop
diff --git a/.github/workflows/feature_branch_update.yml b/.github/workflows/feature_branch_update.yml
index fc7bbafd182d..98d3616ad1e4 100644
--- a/.github/workflows/feature_branch_update.yml
+++ b/.github/workflows/feature_branch_update.yml
@@ -19,6 +19,7 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
+ token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout branch
From f6f4d85aa5256cfeadcae0b502830342bfd0a085 Mon Sep 17 00:00:00 2001
From: an_achronism <87213873+an-achronism@users.noreply.github.com>
Date: Wed, 16 Mar 2022 00:06:27 +0000
Subject: [PATCH 045/221] yugo_m enhancement: include all available key
positions (#16216)
* yugo_m enhancement to include all available key positions in matrix
---
keyboards/yugo_m/model_m_101/config.h | 4 ++
keyboards/yugo_m/model_m_101/info.json | 4 +-
.../keymaps/an_achronism_106/keymap.c | 53 ++++++++++++++
.../keymaps/an_achronism_106/readme.md | 3 +
.../model_m_101/keymaps/default/keymap.c | 29 ++++----
.../model_m_101/keymaps/default/readme.md | 2 +-
.../yugo_m/model_m_101/keymaps/via/keymap.c | 69 +++++++++++++++++++
.../yugo_m/model_m_101/keymaps/via/rules.mk | 1 +
keyboards/yugo_m/model_m_101/model_m_101.h | 23 ++++---
keyboards/yugo_m/model_m_101/readme.md | 8 +++
keyboards/yugo_m/readme.md | 8 +++
11 files changed, 176 insertions(+), 28 deletions(-)
create mode 100644 keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/keymap.c
create mode 100644 keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/readme.md
create mode 100644 keyboards/yugo_m/model_m_101/keymaps/via/keymap.c
create mode 100644 keyboards/yugo_m/model_m_101/keymaps/via/rules.mk
diff --git a/keyboards/yugo_m/model_m_101/config.h b/keyboards/yugo_m/model_m_101/config.h
index 94861a7587d5..e17f8310b8f8 100644
--- a/keyboards/yugo_m/model_m_101/config.h
+++ b/keyboards/yugo_m/model_m_101/config.h
@@ -1,5 +1,6 @@
/*
Copyright 2020 Nidzo Tomic
+Copyright 2022 an_achronism <87213873+an-achronism@users.noreply.github.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
@@ -96,3 +97,6 @@ along with this program. If not, see .
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
+
+/* redefine available (emulated) EEPROM as 4 kB rather than the default 1 kB to let VIA use more of the 8 kB of on-chip Flash of the STM32F303 to store 4 layers (since 4 layers * 8 rows * 16 columns * 2 = 1024 bytes but the default max available is 1023 bytes due to ATMEGA32U4 etc. only having 1 kB of EEPROM) */
+#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
diff --git a/keyboards/yugo_m/model_m_101/info.json b/keyboards/yugo_m/model_m_101/info.json
index ec978056d3a2..399307c2d0b8 100644
--- a/keyboards/yugo_m/model_m_101/info.json
+++ b/keyboards/yugo_m/model_m_101/info.json
@@ -1,10 +1,10 @@
{
- "keyboard_name": "IBM Model M 101/102",
+ "keyboard_name": "IBM Enhanced Keyboard",
"url": "https://github.com/tomic1785/qmk_firmware/tree/stm32_model_m/keyboards/yugo_m/model_m_101",
"maintainer": "Nidzo Tomic",
"layouts": {
"LAYOUT_all": {
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.5}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"4", "x":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"Print Screen", "x":15.5, "y":0}, {"label":"Scroll Lock", "x":16.5, "y":0}, {"label":"Pause", "x":17.5, "y":0}, {"label":"\u00ac", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"\"", "x":2, "y":1.5}, {"label":"\u00a3", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"\uff0a", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"", "x":14, "y":1.5}, {"label":"Insert", "x":15.5, "y":1.5}, {"label":"Home", "x":16.5, "y":1.5}, {"label":"PgUp", "x":17.5, "y":1.5}, {"label":"Num Lock", "x":19, "y":1.5}, {"label":"/", "x":20, "y":1.5}, {"label":"\uff0a", "x":21, "y":1.5}, {"label":"\u2212", "x":22, "y":1.5}, {"label":"", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.5, "y":2.5}, {"label":"End", "x":16.5, "y":2.5}, {"label":"PgDn", "x":17.5, "y":2.5}, {"label":"7", "x":19, "y":2.5}, {"label":"8", "x":20, "y":2.5}, {"label":"9", "x":21, "y":2.5}, {"label":"+", "x":22, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.25}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"@", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"", "x":13.75, "y":3.5, "w":1.25}, {"label":"4", "x":19, "y":3.5}, {"label":"5", "x":20, "y":3.5}, {"label":"6", "x":21, "y":3.5}, {"label":"=", "x":22, "y":3.5}, {"label":"\u21e7", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"_", "x":12.25, "y":4.5}, {"label":"\u21e7", "x":13.25, "y":4.5, "w":1.75}, {"label":"", "x":16.5, "y":4.5}, {"label":"1", "x":19, "y":4.5}, {"label":"2", "x":20, "y":4.5}, {"label":"3", "x":21, "y":4.5}, {"label":"Enter", "x":22, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt Gr", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"", "x":15.5, "y":5.5}, {"label":"", "x":16.5, "y":5.5}, {"label":"", "x":17.5, "y":5.5}, {"label":"0", "x":19, "y":5.5}, {"label":",", "x":20, "y":5.5}, {"label":".", "x":21, "y":5.5}, {"label":"GUI", "x":22, "y":5.5}]
}
}
}
diff --git a/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/keymap.c b/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/keymap.c
new file mode 100644
index 000000000000..4b9646f9ea74
--- /dev/null
+++ b/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/keymap.c
@@ -0,0 +1,53 @@
+/* Copyright 2022 an_achronism <87213873+an-achronism@users.noreply.github.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 .
+ */
+#include QMK_KEYBOARD_H
+
+enum keyboard_layers {
+ _BL, // Base Layer
+ _FN // Function Layer
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,-------------------------------------------------------------------------------------------------.
+ * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PSc|ScL|Cap| |
+ * | |
+ * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |BSp|Pse| |Ins|Hom|PgU| |Num|/ |* |= |
+ * |-----------------------------------------------------------| |-----------| |---------------|
+ * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ |] |RCtrl| |Del|End|PgD| |7 |8 |9 |- |
+ * |-----------------------------------------------------------| |---------------|
+ * |LCtrl |A |S |D |F |G |H |J |K |L |; |' |# |Rtn | |4 |5 |6 |+ |
+ * |-----------------------------------------------------------| |---------------|
+ * |LShift|\ |Z |X |C |V |B |N |M |, |. |/ |RShift | |Up | |1 |2 |3 |Ent|
+ * |-----------------------------------------------------------| |---| |-----------| |
+ * |Esc/LAlt| |LGUI | Space |BS/Fn| |RAlt | |Lt |Dn |Rt | |0 |Fn | .| |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+ [_BL] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_CAPS,
+ 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_PAUS, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PEQL,
+ 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_RCTL, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ 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_INT1, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ LALT_T(KC_ESC), KC_LGUI, KC_SPC, LT(_FN, KC_BSPC), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, MO(_FN), KC_PDOT, KC_NO),
+ [_FN] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, C(KC_BRK), _______, _______, _______, KC_F10, KC_F11, KC_F12, KC_PWR,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_MPRV, KC_MNXT, KC_APP, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_SLEP,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_F4, KC_F5, KC_F6, KC_CALC,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_EJCT,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+};
diff --git a/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/readme.md b/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/readme.md
new file mode 100644
index 000000000000..6d3a7ff5d998
--- /dev/null
+++ b/keyboards/yugo_m/model_m_101/keymaps/an_achronism_106/readme.md
@@ -0,0 +1,3 @@
+# an_achronism's custom 106-key layout (107-key if you stick the appropriate keys on RShift and JIS backslash, which are already mapped for convenience).
+
+# With the exception of a single extra matrix position between LAlt and Space which only appears on certain later membranes and is almost never actually used, the only unmapped key is the bottom right corner of the numpad (the unused lower half of the vertical 2u key most commonly used as either Enter or Field +). If you like, you can easily add that into the keymap by changing the appropriate KC_NO to whatever you want.
diff --git a/keyboards/yugo_m/model_m_101/keymaps/default/keymap.c b/keyboards/yugo_m/model_m_101/keymaps/default/keymap.c
index 52f79457e22b..d8615cb6e5a9 100644
--- a/keyboards/yugo_m/model_m_101/keymaps/default/keymap.c
+++ b/keyboards/yugo_m/model_m_101/keymaps/default/keymap.c
@@ -1,4 +1,5 @@
/* Copyright 2020 Nidzo Tomic
+ * Copyright 2022 an_achronism <87213873+an-achronism@users.noreply.github.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
@@ -22,24 +23,24 @@ enum keyboard_layers {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,-------------------------------------------------------------------------------------------------.
- * |Esc| | F1| F2| F3| F4| | F5| F6| F7| F8| | F9|F10|F11|F12| |PSc|ScL| Ps| |
+ * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PSc|ScL|Pse| |
* | |
- * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BSp| |Ins|Hom|PgU| |Num| /| *| -|
+ * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |¥ |BSp| |Ins|Hom|PgU| |Num|/ |* |- |
* |-----------------------------------------------------------| |-----------| |---------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
- * |-----------------------------------------------------------| |-----------| |
- * |CapsLk| A| S| D| F| G| H| J| K| L| ;| '| #|Ent | | 4| 5| 6| +|
+ * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ |] |\ | |Del|End|PgD| |7 |8 |9 |+ |
* |-----------------------------------------------------------| |---------------|
- * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up| | 1| 2| 3| |
- * |-----------------------------------------------------------| |---| |-----------| |
- * |Ctrl | |Alt | Space |Alt Gr| |Ctrl | | Lt| Dn| Rt| | 0| ,|Ent|
+ * |CapsLk|A |S |D |F |G |H |J |K |L |; |' |# |Ent | |4 |5 |6 |= |
+ * |-----------------------------------------------------------| |---------------|
+ * |Shift|\ |Z |X |C |V |B |N |M |, |. |/ |\ |Shift| |Up | |1 |2 |3 |Ent|
+ * |-----------------------------------------------------------| |---| |---------------|
+ * |Ctrl | |Alt | Space |Alt Gr| |Ctrl | |Lt |Dn |Rt | |0 |, |. |GUI|
* `-------------------------------------------------------------------------------------------------'
*/
[_BL] = LAYOUT_all(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
- 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_P7, KC_P8, KC_P9, KC_PPLS,
- 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_P4, KC_P5, KC_P6,
- 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_P1, KC_P2, KC_P3, KC_PENT,
- KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
+ 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_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_P7, KC_P8, KC_P9, KC_PPLS,
+ 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_P4, KC_P5, KC_P6, KC_PEQL,
+ 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_INT1, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_INT6, KC_PDOT, KC_LGUI),
};
diff --git a/keyboards/yugo_m/model_m_101/keymaps/default/readme.md b/keyboards/yugo_m/model_m_101/keymaps/default/readme.md
index ba8b91239e9a..3d983cc1e74b 100644
--- a/keyboards/yugo_m/model_m_101/keymaps/default/readme.md
+++ b/keyboards/yugo_m/model_m_101/keymaps/default/readme.md
@@ -1 +1 @@
-# The default keymap for 101/102 key keyboards.
+# The default keymap for IBM/Lexmark/Unicomp Enhanced Keyboards (a.k.a. "Keyboard M", "Model M") with arrays comprising between 101 and 108 keys (unused keys can simply be ignored as they will be physically blocked by keycap stabiliser posts). As of February 2022, ANSI, ISO, and JIS key positions are all supported and mapped to the appropriate default functions.
diff --git a/keyboards/yugo_m/model_m_101/keymaps/via/keymap.c b/keyboards/yugo_m/model_m_101/keymaps/via/keymap.c
new file mode 100644
index 000000000000..ee3de82e3b16
--- /dev/null
+++ b/keyboards/yugo_m/model_m_101/keymaps/via/keymap.c
@@ -0,0 +1,69 @@
+/* Copyright 2022 an_achronism <87213873+an-achronism@users.noreply.github.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 .
+ */
+#include QMK_KEYBOARD_H
+
+enum keyboard_layers {
+ _L0, // Base Layer
+ _L1,
+ _L2,
+ _L3,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,-------------------------------------------------------------------------------------------------.
+ * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PSc|ScL|Pse| |
+ * | |
+ * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |¥ |BSp| |Ins|Hom|PgU| |Num|/ |* |- |
+ * |-----------------------------------------------------------| |-----------| |---------------|
+ * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ |] |\ | |Del|End|PgD| |7 |8 |9 |+ |
+ * |-----------------------------------------------------------| |---------------|
+ * |CapsLk|A |S |D |F |G |H |J |K |L |; |' |# |Ent | |4 |5 |6 |= |
+ * |-----------------------------------------------------------| |---------------|
+ * |Shift|\ |Z |X |C |V |B |N |M |, |. |/ |\ |Shift| |Up | |1 |2 |3 |Ent|
+ * |-----------------------------------------------------------| |---| |---------------|
+ * |Ctrl | |Alt | Space |Alt Gr| |Ctrl | |Lt |Dn |Rt | |0 |, |. |GUI|
+ * `-------------------------------------------------------------------------------------------------'
+ */
+ [_L0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_P7, KC_P8, KC_P9, KC_PPLS,
+ 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_P4, KC_P5, KC_P6, KC_PEQL,
+ 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_INT1, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_INT6, KC_PDOT, KC_LGUI),
+ [_L1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+ [_L2] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+ [_L3] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+};
diff --git a/keyboards/yugo_m/model_m_101/keymaps/via/rules.mk b/keyboards/yugo_m/model_m_101/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/yugo_m/model_m_101/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/yugo_m/model_m_101/model_m_101.h b/keyboards/yugo_m/model_m_101/model_m_101.h
index 7ee44f367b22..4b5961ee543f 100644
--- a/keyboards/yugo_m/model_m_101/model_m_101.h
+++ b/keyboards/yugo_m/model_m_101/model_m_101.h
@@ -1,4 +1,5 @@
/* Copyright 2020 Nidzo Tomic
+ * Copyright 2022 an_achronism <87213873+an-achronism@users.noreply.github.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
@@ -24,22 +25,22 @@
* (where COLUMNS and ROWS crosses). */
#define LAYOUT_all( \
- K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \
+ K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \
\
- K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, K4P, K4Q, K4R, K4S, K4T, K4U, \
- K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3O, K3P, K3Q, K3R, K3S, K3T, K3U, \
- K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2O, K2P, K2Q, \
- K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K1N, K1O, K1P, K1Q, K1R, \
- K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J \
+ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, MK1, K4N, K4O, K4P, K4Q, K4R, K4S, K4T, K4U, \
+ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3O, K3P, K3Q, K3R, K3S, K3T, K3U, \
+ K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2O, K2P, K2Q, MK2, \
+ K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, MK3, K1M, K1N, K1O, K1P, K1Q, K1R, \
+ K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, MK4, K0I, K0J, MK5 \
) \
{ \
-/* 00 */ { KC_NO, KC_NO, K5A, K1B, K5E, K2F, K5F, K2G, K5G, KC_NO, K2L, KC_NO, K0I, K0J, K1N, K0B }, \
-/* 01 */ { KC_NO, K1A, K3A, K2A, K5D, K3F, K4N, K3G, K3M, K5H, K3L, K2O, K2P, K2Q, KC_NO, KC_NO }, \
+/* 00 */ { KC_NO, KC_NO, K5A, K1B, K5E, K2F, K5F, K2G, K5G, KC_NO, K2L, MK4, K0I, K0J, K1N, K0B }, \
+/* 01 */ { KC_NO, K1A, K3A, K2A, K5D, K3F, K4N, K3G, K3M, K5H, K3L, K2O, K2P, K2Q, MK2, KC_NO }, \
/* 02 */ { K0A, KC_NO, K4A, K5B, K5C, K4F, K5J, K4G, K4M, K5I, K4L, K3O, K4O, K4Q, K4P, KC_NO }, \
/* 03 */ { KC_NO, KC_NO, K4B, K4C, K4D, K4E, K5K, K4H, K4I, K4J, K4K, K5L, K5M, K3Q, K3P, K5N }, \
-/* 04 */ { KC_NO, KC_NO, K3B, K3C, K3D, K3E, KC_NO, K3H, K3I, K3J, K3K, K3R, K3S, K3T, K3U, K5O }, \
-/* 05 */ { KC_NO, KC_NO, K2B, K2C, K2D, K2E, K3N, K2H, K2I, K2J, K2K, K1O, K1P, K1Q, K1R, KC_NO }, \
+/* 04 */ { KC_NO, KC_NO, K3B, K3C, K3D, K3E, MK1, K3H, K3I, K3J, K3K, K3R, K3S, K3T, K3U, K5O }, \
+/* 05 */ { KC_NO, KC_NO, K2B, K2C, K2D, K2E, K3N, K2H, K2I, K2J, K2K, K1O, K1P, K1Q, K1R, MK5 }, \
/* 06 */ { K0E, K1M, K1C, K1D, K1E, K1F, K2N, K1I, K1J, K1K, K2M, K4R, K4S, K4T, K5P, KC_NO }, \
-/* 07 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K1G, K0C, K1H, KC_NO, KC_NO, K1L, K0G, K0H, K4U, K0F, K0D }, \
+/* 07 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K1G, K0C, K1H, MK3, KC_NO, K1L, K0G, K0H, K4U, K0F, K0D }, \
}
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
diff --git a/keyboards/yugo_m/model_m_101/readme.md b/keyboards/yugo_m/model_m_101/readme.md
index 598f0fa79d26..7c14dea80423 100644
--- a/keyboards/yugo_m/model_m_101/readme.md
+++ b/keyboards/yugo_m/model_m_101/readme.md
@@ -15,3 +15,11 @@ Make example for this keyboard (after setting up your build environment):
make yugo_m/model_m_101:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+
+
+Note regarding 2022 matrix update:
+
+The original author's firmware did not make several lesser-used membrane/matrix positions available to the controller. These are useful for JIS users and/or if you simply want to create a more unique layout. I've added all of the unused membrane positions to the firmware, except for an extremely seldom used one that sits in the left side of the space bar on some later membranes (I would have added it if I knew its matrix position, but I haven't mapped that out yet). The default mappings for these additional keys follow JIS conventions, except for the extra key on the bottom right corner of the numpad (lower half of vertical 2u Enter), which I've mapped to the LGUI key a.k.a. left Windows/Command key for now. Remap as you wish!
+
+- an_achronism, February 2022
\ No newline at end of file
diff --git a/keyboards/yugo_m/readme.md b/keyboards/yugo_m/readme.md
index 557c4262d543..40c7b6407353 100644
--- a/keyboards/yugo_m/readme.md
+++ b/keyboards/yugo_m/readme.md
@@ -9,3 +9,11 @@ Currently available only for 101/102 key keyboards.
* Rev 1.1b
For more info visit the project repository: [Yugo-M-controller-project](https://github.com/tomic1785/Yugo-M-controller-project)
+
+
+
+Note regarding 2022 matrix update:
+
+The original author's firmware did not make several lesser-used membrane/matrix positions available to the controller. These are useful for JIS users and/or if you simply want to create a more unique layout. I've added all of the unused membrane positions to the firmware, except for an extremely seldom used one that sits in the left side of the space bar on some later membranes (I would have added it if I knew its matrix position, but I haven't mapped that out yet). The default mappings for these additional keys follow JIS conventions, except for the extra key on the bottom right corner of the numpad (lower half of vertical 2u Enter), which I've mapped to the LGUI key a.k.a. left Windows/Command key for now. Remap as you wish!
+
+- an_achronism, February 2022
\ No newline at end of file
From fded67f1a97499887857b1d2d2e226e4069ffdf5 Mon Sep 17 00:00:00 2001
From: AnthonyNguyen168 <89651736+AnthonyNguyen168@users.noreply.github.com>
Date: Wed, 16 Mar 2022 10:13:14 +0700
Subject: [PATCH 046/221] [MB-65S] Change layout to follow change request from
OEM (#16663)
---
.../mb65s/keymaps/default/keymap.c | 24 +++++++--------
.../mechbrewery/mb65s/keymaps/iso/keymap.c | 22 +++++++-------
.../mb65s/keymaps/split_bs/keymap.c | 30 +++++++++----------
3 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c
index 512c04a2961f..5625e07568ec 100644
--- a/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c
+++ b/keyboards/mechbrewery/mb65s/keymaps/default/keymap.c
@@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap (Base Layer) Default Layer
* ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Del|
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Hom|
* |---------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PUp|
* |---------------------------------------------------------------|
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `---------------------------------------------------------------'
*/
[0] = LAYOUT_65_ansi_blocker(
- 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_DEL,
+ 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_HOME,
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_ENT, KC_PGDN,
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_END,
@@ -41,23 +41,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap Fn Layer
* ,---------------------------------------------------------------.
- * |~ `|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete |Ins|
+ * |~ `|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | |
* |---------------------------------------------------------------|
- * | | |Up | | | | | |PSc|SLk|Pau|Up | | | |
+ * |Caps | |Up | | | | | |Ins| |PSc|SLk|Pau| | |
* |---------------------------------------------------------------|
- * | |Lef|Dow|Rig| | | | |Hom|PUp|Lef|Rig| Reset | |
+ * | |Lef|Dow|Rig| | | | | | |Hom|PUp| | |
* |---------------------------------------------------------------|
- * | |BL-|BLT|BL+|BLS|BLM| | |End|PDn|Dow| |PUp| |
+ * | | | | | | |Vo-|Vo+|Mut|End|PDn| | | |
* |---------------------------------------------------------------|
- * | | | | | | | |Hom|PDn|End|
+ * | | | | | | | | | | |
* `---------------------------------------------------------------'
*/
[1] = LAYOUT_65_ansi_blocker(
- 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_INS,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, RESET, _______,
- _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, BL_BRTG, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, 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_CAPS, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
diff --git a/keyboards/mechbrewery/mb65s/keymaps/iso/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/iso/keymap.c
index f6101815ac56..789976283859 100644
--- a/keyboards/mechbrewery/mb65s/keymaps/iso/keymap.c
+++ b/keyboards/mechbrewery/mb65s/keymaps/iso/keymap.c
@@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base layer
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Del│
+ * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │PUp│
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent├───┤
@@ -42,23 +42,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Function layer
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ § │ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│Delete │Prt│
+ * │ § │ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│Delete │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │Prv│Pau│Nxt│ │ │ │ │ │ │ │ │ │Reset│Ins│
+ * │Caps │ │Up │ │ │ │ │ │Ins│ │PSc│SLk│Pau│ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
- * │ │Vl-│V0 │Vl+│ │ │ │ │ │ │ │ │ │ │Hom│
+ * │ │Lef│Dow│Rig│ │ │ │ │ │ │Hom│PUp│ │ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
- * │ │BL-│BLT│BL+│BLS│BLM│ │ │ │ │ │LClick│MUp│End│
+ * │ │ │ │ │ │ │Vo-│Vo+│Mut│End│PDn│ │ │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │MLt│MDw│MRt│
+ * │ │ │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
*/
[1] = LAYOUT_65_ansi_blocker_isoenter(
- 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_PSCR,
- _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
- _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_HOME,
- _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, BL_BRTG, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_END,
- _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
+ _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
diff --git a/keyboards/mechbrewery/mb65s/keymaps/split_bs/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/split_bs/keymap.c
index 0cbb5040ea78..db56fae4422a 100644
--- a/keyboards/mechbrewery/mb65s/keymaps/split_bs/keymap.c
+++ b/keyboards/mechbrewery/mb65s/keymaps/split_bs/keymap.c
@@ -20,44 +20,44 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap (Base Layer) Default Layer
* ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| - | = |Bsp|Del|Hom|
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| - | = |Bsp|Bsp|Hom|
* |---------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [ | ] | \ |PUp|
* |---------------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ; | ' |Return |PDn|
* |---------------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| , | . | / |Shift | Up|Hom|
+ * |Shift | Z| X| C| V| B| N| M| , | . | / |Shift | Up|End|
* |---------------------------------------------------------------|
- * |Ctrl|LGUI|Alt | Space |GUI |Fn | |Lef|Dow|Rig|
+ * |Ctrl|LGUI|Alt | Space |Alt |Fn | |Lef|Dow|Rig|
* `---------------------------------------------------------------'
*/
[0] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
+ 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_BSPC, KC_HOME,
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_ENT, KC_PGDN,
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_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
/* Keymap Fn Layer
* ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| - | = | |Del|Ins|
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| - | = |Del|Del| |
* |---------------------------------------------------------------|
- * | | |Up | | | | | |PSc|SLk|Pau|Up | | | |
+ * |Caps | |Up | | | | | |Ins| |PSc|SLk|Pau| | |
* |---------------------------------------------------------------|
- * | |Lef|Dow|Rig| | | | |Hom|PUp|Lef|Rig| Reset |Vl+|
+ * | |Lef|Dow|Rig| | | | | | |Hom|PUp| | |
* |---------------------------------------------------------------|
- * | |BL-|BLT|BL+|BLS|BLM| | |End|PDn|Dow| | |Vl-|
+ * | | | | | | |Vo-|Vo+|Mut|End|PDn| | | |
* |---------------------------------------------------------------|
- * | | | | | | | |Prv|Ply|Nxt|
+ * | | | | | | | | | | |
* `---------------------------------------------------------------'
*/
[1] = LAYOUT_all(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, KC_INS,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, RESET, KC_VOLU,
- _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, BL_BRTG, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, KC_VOLD,
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
+ 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_UP, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
From a867cfc26d811367ad345f31657547e9d603d869 Mon Sep 17 00:00:00 2001
From: Yakbats
Date: Tue, 15 Mar 2022 20:14:31 -0700
Subject: [PATCH 047/221] Update the AL1 Vender ID (#16660)
* Add via to AL1
* Updated number of rows and columns, and applied suggestions from code review
* Update Vender ID
Change the Vender ID for Triangle Lab to comply with the via PR checklist.
---
keyboards/al1/config.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h
index 078e9cb41e01..ea6474dc1854 100644
--- a/keyboards/al1/config.h
+++ b/keyboards/al1/config.h
@@ -20,7 +20,7 @@ along with this program. If not, see .
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
+#define VENDOR_ID 0x544C
#define PRODUCT_ID 0x6050
#define DEVICE_VER 0x0104
#define MANUFACTURER Alsoran
From 8c5779f7689d8e0f84f98d29e7e63f1058f30f0e Mon Sep 17 00:00:00 2001
From: Ryan
Date: Wed, 16 Mar 2022 14:57:47 +1100
Subject: [PATCH 048/221] Fix m3n3van and minim keyboard names in keymap JSON
(#16665)
---
keyboards/matthewdias/m3n3van/keymaps/default/keymap.json | 2 +-
keyboards/matthewdias/minim/keymaps/default/keymap.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/keyboards/matthewdias/m3n3van/keymaps/default/keymap.json b/keyboards/matthewdias/m3n3van/keymaps/default/keymap.json
index d59debdaf137..f2e65452caae 100644
--- a/keyboards/matthewdias/m3n3van/keymaps/default/keymap.json
+++ b/keyboards/matthewdias/m3n3van/keymaps/default/keymap.json
@@ -1,5 +1,5 @@
{
- "keyboard": "m3n3van",
+ "keyboard": "matthewdias/m3n3van",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
diff --git a/keyboards/matthewdias/minim/keymaps/default/keymap.json b/keyboards/matthewdias/minim/keymaps/default/keymap.json
index bc7407e93a89..3bb5fe199276 100644
--- a/keyboards/matthewdias/minim/keymaps/default/keymap.json
+++ b/keyboards/matthewdias/minim/keymaps/default/keymap.json
@@ -1,5 +1,5 @@
{
- "keyboard": "minim",
+ "keyboard": "matthewdias/minim",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
From d5d2a01db2bc09735806fd62ef31997428885ddf Mon Sep 17 00:00:00 2001
From: Ryan
Date: Wed, 16 Mar 2022 15:08:52 +1100
Subject: [PATCH 049/221] gboards/butterstick: move steno rules config to
keymap level (#16666)
---
keyboards/gboards/butterstick/keymaps/default/rules.mk | 4 ++++
keyboards/gboards/butterstick/rules.mk | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
create mode 100644 keyboards/gboards/butterstick/keymaps/default/rules.mk
diff --git a/keyboards/gboards/butterstick/keymaps/default/rules.mk b/keyboards/gboards/butterstick/keymaps/default/rules.mk
new file mode 100644
index 000000000000..6a3346110808
--- /dev/null
+++ b/keyboards/gboards/butterstick/keymaps/default/rules.mk
@@ -0,0 +1,4 @@
+STENO_ENABLE = yes
+
+OPT_DEFS += -DONLYQWERTY -DDEBUG_MATRIX
+SRC += sten.c
diff --git a/keyboards/gboards/butterstick/rules.mk b/keyboards/gboards/butterstick/rules.mk
index 4229aa7eecaf..e05ccd047c90 100644
--- a/keyboards/gboards/butterstick/rules.mk
+++ b/keyboards/gboards/butterstick/rules.mk
@@ -12,8 +12,4 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
-STENO_ENABLE = yes # Needed for chording
-
-OPT_DEFS += -DONLYQWERTY -DDEBUG_MATRIX
-SRC += sten.c
LTO_ENABLE = yes
From 193dd01f4ec06c3153b23a5cd809fbd97f43012d Mon Sep 17 00:00:00 2001
From: Jay Greco
Date: Wed, 16 Mar 2022 08:34:16 -0700
Subject: [PATCH 050/221] [Keyboard] Add nullbits TIDBIT (#15182)
---
keyboards/nullbitsco/tidbit/config.h | 62 ++++
keyboards/nullbitsco/tidbit/info.json | 14 +
.../tidbit/keymaps/default/keymap.c | 40 +++
.../nullbitsco/tidbit/keymaps/oled/keymap.c | 58 ++++
.../nullbitsco/tidbit/keymaps/oled/rules.mk | 3 +
.../tidbit/keymaps/snailmap_lite/keymap.c | 283 ++++++++++++++++++
.../tidbit/keymaps/snailmap_lite/rules.mk | 6 +
.../nullbitsco/tidbit/keymaps/via/keymap.c | 59 ++++
.../nullbitsco/tidbit/keymaps/via/rules.mk | 1 +
keyboards/nullbitsco/tidbit/readme.md | 26 ++
keyboards/nullbitsco/tidbit/rules.mk | 26 ++
keyboards/nullbitsco/tidbit/tidbit.c | 157 ++++++++++
keyboards/nullbitsco/tidbit/tidbit.h | 37 +++
13 files changed, 772 insertions(+)
create mode 100644 keyboards/nullbitsco/tidbit/config.h
create mode 100644 keyboards/nullbitsco/tidbit/info.json
create mode 100644 keyboards/nullbitsco/tidbit/keymaps/default/keymap.c
create mode 100644 keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c
create mode 100644 keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk
create mode 100644 keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c
create mode 100644 keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk
create mode 100644 keyboards/nullbitsco/tidbit/keymaps/via/keymap.c
create mode 100644 keyboards/nullbitsco/tidbit/keymaps/via/rules.mk
create mode 100644 keyboards/nullbitsco/tidbit/readme.md
create mode 100644 keyboards/nullbitsco/tidbit/rules.mk
create mode 100644 keyboards/nullbitsco/tidbit/tidbit.c
create mode 100644 keyboards/nullbitsco/tidbit/tidbit.h
diff --git a/keyboards/nullbitsco/tidbit/config.h b/keyboards/nullbitsco/tidbit/config.h
new file mode 100644
index 000000000000..103dabdb96cd
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/config.h
@@ -0,0 +1,62 @@
+/* Copyright 2021 Jay Greco
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* Used to set remote for remote KB if VUSB detect doesn't work. */
+// #define KEYBOARD_REMOTE
+
+// Workaround for freezing after MacOS sleep
+#define USB_SUSPEND_WAKEUP_DELAY 200
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6E61
+#define PRODUCT_ID 0x6064
+#define DEVICE_VER 0x0001
+#define MANUFACTURER nullbits
+#define PRODUCT TIDBIT
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 6
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { B1, E6, D7, C6, D4 }
+#define MATRIX_COL_PINS { NO_PIN, NO_PIN, F4, F5, F6, F7 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION ROW2COL
+
+/* Optional SMT LED pins */
+#define RGB_DI_PIN B6
+#define RGBLED_NUM 8
+#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
+
+/* Optional encoder pins */
+// Encoders are defined in order. 1: B2 & B3, 2: B4 & B5, 3: D0 & D1, 4: D2 & D3
+#define ENCODERS_PAD_A { B2, B4, D0, D3 }
+#define ENCODERS_PAD_B { B3, B5, D1, D2 }
diff --git a/keyboards/nullbitsco/tidbit/info.json b/keyboards/nullbitsco/tidbit/info.json
new file mode 100644
index 000000000000..5d260cc45302
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/info.json
@@ -0,0 +1,14 @@
+{
+ "keyboard_name": "TIDBIT 19",
+ "url": "https://nullbits.co/tidbit/",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"/", "x":3.25, "y":0}, {"label":"*", "x":4.25, "y":0}, {"label":"-", "x":5.25, "y":0},
+ {"label":"Enc 1", "x":0, "y":1}, {"label":"Enc 1", "x":1, "y":1}, {"label":"7", "x":2.25, "y":1}, {"label":"8", "x":3.25, "y":1}, {"label":"9", "x":4.25, "y":1}, {"label":"+", "x":5.25, "y":1},
+ {"label":"Enc 2", "x":0, "y":2}, {"label":"Enc 2", "x":1, "y":2}, {"label":"4", "x":2.25, "y":2}, {"label":"5", "x":3.25, "y":2}, {"label":"6", "x":4.25, "y":2}, {"label":"+", "x":5.25, "y":2},
+ {"label":"Enc 3", "x":0, "y":3}, {"label":"Enc 3", "x":1, "y":3}, {"label":"1", "x":2.25, "y":3}, {"label":"2", "x":3.25, "y":3}, {"label":"3", "x":4.25, "y":3}, {"label":"Enter", "x":5.25, "y":3},
+ {"label":"Enc 4", "x":0, "y":4}, {"label":"Enc 4", "x":1, "y":4}, {"label":"0", "x":2.25, "y":4}, {"label":"0", "x":3.25, "y":4}, {"label":".", "x":4.25, "y":4}, {"label":"Enter", "x":5.25, "y":4}]
+ }
+ }
+}
diff --git a/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c
new file mode 100644
index 000000000000..995aff8d6919
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
+/* Copyright 2021 Jay Greco
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _BASE = 0,
+ _FUNC
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_PSLS, KC_PAST, KC_PMNS,
+ KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_MPRV, KC_MNXT, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_LEFT, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ [_FUNC] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+};
diff --git a/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c
new file mode 100644
index 000000000000..3fbfb638ecd0
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/oled/keymap.c
@@ -0,0 +1,58 @@
+/* Copyright 2021 Jay Greco
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _BASE = 0,
+ _VIA1,
+ _VIA2,
+ _VIA3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_PSLS, KC_PAST, KC_PMNS,
+ KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ [_VIA1] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+
+ [_VIA2] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+
+ [_VIA3] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+};
diff --git a/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk
new file mode 100644
index 000000000000..ef531564fcdb
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/oled/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+OLED_ENABLE = yes
+OLED_DRIVER = SSD1306
diff --git a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c
new file mode 100644
index 000000000000..cfe97e30a371
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/keymap.c
@@ -0,0 +1,283 @@
+/* Copyright 2021 dogspace
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _LAY0,
+ _LAY1,
+ _LAY2,
+ _LAY3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_LAY0] = LAYOUT(
+ KC_PSLS, KC_PAST, KC_PMNS,
+ KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ [_LAY1] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+
+ [_LAY2] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+
+ [_LAY3] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+};
+
+#ifdef OLED_ENABLE
+/*=========================================== OLED CONFIGURATION ===========================================*/
+#define OLED_ROTATE true // OLED rotation (flip 180* from default orientation)
+#define GRAPH_DIRECTION true // Graph movement (true = right to left, false = left to right)
+#define GRAPH_TOP_WPM 100.0 // Minimum WPM required to reach the top of the graph
+#define GRAPH_REFRESH 1000 // In milliseconds, determines the graph-line frequency
+#define ICON_MED_WPM 10 // WPM required to display the medium snail
+#define ICON_FAST_WPM 25 // WPM required to display the fast snail
+
+// Layer names: Should be exactly 5 characters in length if vertical display, or 6 characters if horizontal
+#define MA_LAYER_NAME "LAY 0" // Layer _MA name
+#define L1_LAYER_NAME "LAY 1" // Layer _L1 name
+#define L2_LAYER_NAME "LAY 2" // Layer _L2 name
+#define L3_LAYER_NAME "LAY 3" // Layer _L3 name
+
+#define CAPLCK_STR "CAPLK" // Caps Lock string
+#define NUMLCK_STR "NUMLK" // Num Lock string
+#define SCRLK_STR "SCRLK" // Scroll Lock string
+#define EMPTY_STR " " // Empty string
+
+/*================================================================================================================*/
+
+typedef struct oled_params {
+ bool first_loop : 1;
+ uint8_t wpm_icon : 7;
+ uint16_t timer;
+ uint8_t wpm_limit;
+ uint8_t max_wpm;
+ uint8_t graph_lines[32];
+} oled_params;
+
+oled_params oled_data;
+
+void oled_init_data(void) {
+ // Initialize oled params
+ oled_data.first_loop = true;
+ oled_data.wpm_icon = 5;
+ oled_data.timer = 0;
+ oled_data.wpm_limit = 20;
+ oled_data.max_wpm = 0;
+
+ for (int i=0; i<32; i++) {
+ oled_data.graph_lines[i] = 0;
+ }
+}
+
+// Set OLED rotation
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ oled_init_data();
+ return OLED_ROTATE ? OLED_ROTATION_270 : OLED_ROTATION_90;
+}
+
+// Draw static background image to OLED (keyboard with no bottom row)
+static void render_background(void) {
+ static const char PROGMEM nullbits_n_oled[] = {
+ 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x20, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
+ 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
+ 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00,
+ };
+ oled_write_raw_P(nullbits_n_oled, sizeof(nullbits_n_oled));
+}
+
+// Toggles pixel on/off, converts horizontal coordinates to vertical equivalent if necessary
+static void write_pixel(uint8_t x, uint8_t y, bool onoff) {
+ oled_write_pixel(y, 127 - x, onoff);
+}
+
+// Write active layer name
+static void render_layer_state(void) {
+ oled_set_cursor(0, 15);
+ switch (get_highest_layer(layer_state)) {
+ case _LAY0:
+ oled_write_P(PSTR(MA_LAYER_NAME), false);
+ break;
+ case _LAY1:
+ oled_write_P(PSTR(L1_LAYER_NAME), false);
+ break;
+ case _LAY2:
+ oled_write_P(PSTR(L2_LAYER_NAME), false);
+ break;
+ case _LAY3:
+ oled_write_P(PSTR(L3_LAYER_NAME), false);
+ break;
+ default:
+ oled_write("ERROR", false);
+ break;
+ }
+}
+
+// Update WPM counters
+static void render_wpm_counters(uint8_t current_wpm) {
+ uint8_t cursorposition_cur = 13;
+ uint8_t cursorposition_max = 14;
+
+ oled_set_cursor(0, cursorposition_cur);
+ oled_write(get_u8_str(current_wpm, '0'), false);
+
+ if (current_wpm > oled_data.max_wpm) {
+ oled_data.max_wpm = current_wpm;
+ oled_data.wpm_limit = oled_data.max_wpm + 20;
+ oled_set_cursor(0, cursorposition_max);
+ oled_write(get_u8_str(current_wpm, '0'), false);
+ }
+}
+
+static void render_led_status(void) {
+ // Host Keyboard LED Status
+ uint8_t led_usb_state = host_keyboard_leds();
+ oled_set_cursor(0, 8);
+ oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR(CAPLCK_STR) : PSTR(EMPTY_STR), false);
+ oled_set_cursor(0, 9);
+ oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR(NUMLCK_STR) : PSTR(EMPTY_STR), false);
+ oled_set_cursor(0, 10);
+ oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR(SCRLK_STR) : PSTR(EMPTY_STR), false);
+}
+
+// Update WPM snail icon
+static void render_wpm_icon(uint8_t current_wpm) {
+ // wpm_icon is used to prevent unnecessary redraw
+ if ((current_wpm < ICON_MED_WPM) && (oled_data.wpm_icon != 0)) {
+ oled_data.wpm_icon = 0;
+ } else if ((current_wpm >= ICON_MED_WPM) && (current_wpm < ICON_FAST_WPM) && (oled_data.wpm_icon != 1)) {
+ oled_data.wpm_icon = 1;
+ } else if ((current_wpm >= ICON_FAST_WPM) && (oled_data.wpm_icon != 2)) {
+ oled_data.wpm_icon = 2;
+ } else {
+ return;
+ }
+ static const char PROGMEM snails[][2][24] = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0xA0, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x50, 0x88, 0x04, 0x00, 0x00},
+ {0x40, 0x60, 0x50, 0x4E, 0x51, 0x64, 0x4A, 0x51, 0x54, 0x49, 0x41, 0x62, 0x54, 0x49, 0x46, 0x41, 0x40, 0x30, 0x09, 0x04, 0x02, 0x01, 0x00, 0x00}},
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x04, 0x98, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00},
+ {0x60, 0x50, 0x54, 0x4A, 0x51, 0x64, 0x4A, 0x51, 0x55, 0x49, 0x41, 0x62, 0x54, 0x49, 0x46, 0x41, 0x21, 0x10, 0x0A, 0x08, 0x05, 0x02, 0x00, 0x00}},
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x10, 0x10, 0x10, 0x20, 0x40, 0x40, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00},
+ {0x60, 0x58, 0x54, 0x62, 0x49, 0x54, 0x52, 0x51, 0x55, 0x49, 0x62, 0x52, 0x4D, 0x45, 0x46, 0x22, 0x21, 0x11, 0x10, 0x0A, 0x08, 0x05, 0x02, 0x00}}
+ };
+ oled_set_cursor(0, 11);
+ oled_write_raw_P(snails[oled_data.wpm_icon][0], sizeof(snails[oled_data.wpm_icon][0]));
+ oled_set_cursor(0, 12);
+ oled_write_raw_P(snails[oled_data.wpm_icon][1], sizeof(snails[oled_data.wpm_icon][1]));
+}
+
+// Update WPM graph
+static void render_wpm_graph(uint8_t current_wpm) {
+ uint8_t line_height = ((current_wpm / GRAPH_TOP_WPM) * 7);
+ if (line_height > 7) {
+ line_height = 7;
+ }
+ // Count graph line pixels, return if nothing to draw
+ uint8_t pixel_count = line_height;
+ for (int i = 0; i < 31; i++) {
+ pixel_count += oled_data.graph_lines[i];
+ }
+ if (pixel_count == 0) {
+ return;
+ }
+ // Shift array elements left or right depending on GRAPH_DIRECTION pend new graph line
+ if (GRAPH_DIRECTION) {
+ for (int i = 0; i < 31; i++) {
+ oled_data.graph_lines[i] = oled_data.graph_lines[i + 1];
+ }
+ oled_data.graph_lines[31] = line_height;
+ } else {
+ for (int i = 31; i > 0; i--) {
+ oled_data.graph_lines[i] = oled_data.graph_lines[i - 1];
+ }
+ oled_data.graph_lines[0] = line_height;
+ }
+ // Draw all graph lines (left to right, bottom to top)
+ uint16_t draw_count, arrpos;
+ for (int x = 1; x <= 63; x += 2) {
+ arrpos = x / 2;
+ draw_count = oled_data.graph_lines[arrpos];
+ for (int y = 31; y >= 25; y--) {
+ if (draw_count > 0) {
+ write_pixel(x, y, true);
+ draw_count--;
+ } else {
+ write_pixel(x, y, false);
+ }
+ }
+ }
+}
+
+// Call OLED functions
+bool oled_task_user(void) {
+ // Draw OLED keyboard, prevent redraw
+ if (oled_data.first_loop) {
+ render_background();
+ oled_data.first_loop = false;
+ }
+ // Get current WPM, subtract 25% for accuracy and prevent large jumps caused by simultaneous keypresses
+ uint8_t current_wpm = get_current_wpm();
+ // Write active layer name to display
+ render_layer_state();
+ // Update WPM counters
+ render_wpm_counters(current_wpm);
+ // Update WPM snail icon
+ render_wpm_icon(current_wpm);
+ // Update LED status
+ render_led_status();
+ // Update WPM graph every graph_refresh milliseconds
+ if (timer_elapsed(oled_data.timer) > GRAPH_REFRESH) {
+ render_wpm_graph(current_wpm);
+ oled_data.timer = timer_read();
+ }
+ return false;
+}
+#endif
+
+bool wpm_keycode_user(uint16_t keycode) {
+ // Count all keycodes on the macropad
+ return true;
+}
+
diff --git a/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk
new file mode 100644
index 000000000000..1b72fd006a25
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/snailmap_lite/rules.mk
@@ -0,0 +1,6 @@
+OLED_ENABLE = yes
+WPM_ENABLE = yes
+VIA_ENABLE = yes
+SPACE_CADET_ENABLE = no
+GRAVE_ESC_ENABLE = no
+MAGIC_ENABLE = no
diff --git a/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c b/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c
new file mode 100644
index 000000000000..ad3e18075cc0
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/via/keymap.c
@@ -0,0 +1,59 @@
+/* Copyright 2021 Jay Greco
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _BASE = 0,
+ _VIA1,
+ _VIA2,
+ _VIA3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_PSLS, KC_PAST, KC_PMNS,
+ KC_VOLD, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_TRNS, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ [_VIA1] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+
+ [_VIA2] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+
+ [_VIA3] = LAYOUT(
+ ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___,
+ ___, ___, ___, ___, ___, ___
+ ),
+};
+
diff --git a/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk b/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk
new file mode 100644
index 000000000000..036bd6d1c3ec
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/nullbitsco/tidbit/readme.md b/keyboards/nullbitsco/tidbit/readme.md
new file mode 100644
index 000000000000..f2d0d9934b06
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/readme.md
@@ -0,0 +1,26 @@
+# TIDBIT
+
+![TIDBIT](https://nullbits.co/static/img/tidbit1.jpg)
+
+A very moddable 19-key numpad kit built by nullbits. [More info at nullbits.co](https://nullbits.co/tidbit/)
+
+* Keyboard Maintainer: [Jay Greco](https://github.com/jaygreco)
+* Hardware Supported: TIDBIT Rev1, Pro Micro comaptible MCUs.
+* Hardware Availability: [nullbits.co](https://nullbits.co/)
+
+Note: If you are seeing issues with MacOS and keyboard hangs after sleep, make sure `NO_USB_STARTUP_CHECK = yes` is set in your rules.mk.
+
+Adds experimental "Remote Keyboard" functionality, which forwards keystrokes from an external macropad, keyboard, or numpad over UART/TRRS, removing the need for an additional USB connection.
+
+## Bootloader
+
+Enter the bootloader in 2 ways:
+
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+
+Make example for this keyboard (after setting up your build environment):
+
+ make nullbitsco/tidbit:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/nullbitsco/tidbit/rules.mk b/keyboards/nullbitsco/tidbit/rules.mk
new file mode 100644
index 000000000000..13893a69e23a
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/rules.mk
@@ -0,0 +1,26 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
+LTO_ENABLE = yes
+
+# Project specific files
+SRC += common/bitc_led.c \
+ common/remote_kb.c
+QUANTUM_LIB_SRC += i2c_master.c \
+ uart.c
diff --git a/keyboards/nullbitsco/tidbit/tidbit.c b/keyboards/nullbitsco/tidbit/tidbit.c
new file mode 100644
index 000000000000..6e7ef460e5db
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/tidbit.c
@@ -0,0 +1,157 @@
+/* Copyright 2021 Jay Greco
+*
+* 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 .
+*/
+
+#include QMK_KEYBOARD_H
+
+typedef struct PACKED {
+ uint8_t r;
+ uint8_t c;
+} encodermap_t;
+
+// Map encoders to their respective virtual matrix entry
+// Allows for encoder control using VIA
+const encodermap_t encoder_map[4][2] = {
+ {{1, 0}, {1, 1}}, // Encoder 1 matrix location
+ {{2, 0}, {2, 1}}, // Encoder 2 matrix location
+ {{3, 0}, {3, 1}}, // Encoder 3 matrix location
+ {{4, 0}, {4, 1}}, // Encoder 4 matrix location
+};
+
+bool numlock_set = false;
+
+#ifdef OLED_ENABLE
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ return OLED_ROTATION_180;
+}
+
+static void render_logo(void) {
+ static const char PROGMEM tidbit_oled[] = {
+ 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff,
+ 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f,
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x7e, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ 0x1f, 0x1f, 0x3f, 0x7e, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x07, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x3f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
+ 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8,
+ 0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3e, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
+ 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x7f, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ oled_write_raw_P(tidbit_oled, sizeof(tidbit_oled));
+};
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) return false;
+ render_logo();
+ return true;
+}
+
+#endif
+
+static void process_encoder_matrix(encodermap_t pos) {
+ action_exec((keyevent_t){
+ .key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */
+ });
+#if TAP_CODE_DELAY > 0
+ wait_ms(TAP_CODE_DELAY);
+#endif
+ action_exec((keyevent_t){
+ .key = (keypos_t){.row = pos.r, .col = pos.c}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */
+ });
+}
+
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) return false;
+ process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]);
+ return false;
+}
+
+// Use Bit-C LED to show NUM LOCK status
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (res) {
+ set_bitc_LED(led_state.num_lock ? LED_DIM : LED_OFF);
+ }
+ return res;
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ process_record_remote_kb(keycode, record);
+ if (!process_record_user(keycode, record)) return false;
+
+ // Get the current NLCK status & set if not set.
+ // Only do this once, in case user has a NLCK key
+ // and wants to disable it later on.
+ if (!numlock_set && record->event.pressed) {
+ led_t led_state = host_keyboard_led_state();
+ if (!led_state.num_lock) {
+ register_code(KC_NLCK);
+ }
+ numlock_set = true;
+ }
+
+ switch (keycode) {
+ case RESET:
+ if (record->event.pressed) {
+ set_bitc_LED(LED_DIM);
+ rgblight_disable_noeeprom();
+ #ifdef OLED_ENABLE
+ oled_off();
+ #endif
+ bootloader_jump(); // jump to bootloader
+ }
+ return false;
+
+ default:
+ break;
+ }
+
+ return true;
+}
+
+void matrix_init_kb(void) {
+ set_bitc_LED(LED_OFF);
+ matrix_init_remote_kb();
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ matrix_scan_remote_kb();
+ matrix_scan_user();
+}
diff --git a/keyboards/nullbitsco/tidbit/tidbit.h b/keyboards/nullbitsco/tidbit/tidbit.h
new file mode 100644
index 000000000000..e4e80107e3ce
--- /dev/null
+++ b/keyboards/nullbitsco/tidbit/tidbit.h
@@ -0,0 +1,37 @@
+/* Copyright 2021 Jay Greco
+ *
+ * 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 .
+ */
+#pragma once
+
+#define ___ KC_NO
+
+#include "quantum.h"
+#include "common/remote_kb.h"
+#include "common/bitc_led.h"
+
+#define LAYOUT( \
+ K01, K02, K03, \
+ E1CCW, E1CW, K10, K11, K12, K13, \
+ E2CCW, E2CW, K20, K21, K22, K23, \
+ E3CCW, E3CW, K30, K31, K32, K33, \
+ E4CCW, E4CW, K40, K41, K42, K43 \
+) \
+{ \
+ { ___, ___, ___, K01, K02, K03 }, \
+ { E1CCW, E1CW, K10, K11, K12, K13 }, \
+ { E2CCW, E2CW, K20, K21, K22, K23 }, \
+ { E3CCW, E3CW, K30, K31, K32, K33 }, \
+ { E4CCW, E4CW, K40, K41, K42, K43 } \
+}
From 417f08911507307906f1dfbdb45d9d3a81232576 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Wed, 16 Mar 2022 23:45:06 +0000
Subject: [PATCH 051/221] Print out generated files during build (#16672)
---
builddefs/build_keyboard.mk | 20 +++++++++++++++-----
builddefs/message.mk | 1 +
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index d5efcb4193a1..44acd964cc7a 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -159,10 +159,14 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
# Add rules to generate the keymap files - indentation here is important
$(KEYMAP_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
- $(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
+ @$(BUILD_CMD)
$(KEYMAP_OUTPUT)/src/config.h: $(KEYMAP_JSON)
- $(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H)
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H))
+ @$(BUILD_CMD)
generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c
@@ -326,13 +330,19 @@ endif
CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h
$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
- $(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h)
+ @$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
- $(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h)
+ @$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
- $(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h)
+ @$(BUILD_CMD)
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h
diff --git a/builddefs/message.mk b/builddefs/message.mk
index d441f560be7b..07d0e07ce80a 100644
--- a/builddefs/message.mk
+++ b/builddefs/message.mk
@@ -63,6 +63,7 @@ MSG_COMPILING_CXX = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
MSG_CREATING_LIBRARY = Creating library:
+MSG_GENERATING = Generating:
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR) Some git submodules are out of date or modified.\n\
Please consider running $(BOLD)make git-submodule$(NO_COLOR).\n\n
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)
From 02655690f48ec64ba982499cd3272ee6076b73b3 Mon Sep 17 00:00:00 2001
From: Drashna Jaelre
Date: Thu, 17 Mar 2022 14:19:34 -0700
Subject: [PATCH 052/221] [Core] Add compile/make macro to core (#15959)
* [Core] Add KC_MAKE keycode to core
fix linting
fix testing error
work around test idiocyncracies
fix more lint
something something stupid tests
add doc
* updates based on feedback
* Add bad names
* Fixup docs
* semantics but cleaner
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
* Hide oneshot checks behind preprocessors
* Move no-compile option around
* Fix formatting
* make shift optional
* Make opt in
* fix formatting
* update send string function name
Co-authored-by: Joel Challis
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Joel Challis
---
docs/config_options.md | 2 ++
docs/keycodes.md | 11 ++++++-----
docs/quantum_keycodes.md | 11 ++++++-----
quantum/quantum.c | 20 ++++++++++++++++++++
quantum/quantum_keycodes.h | 2 ++
5 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/docs/config_options.md b/docs/config_options.md
index 838c4d86fdb0..8227a0e074f9 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -131,6 +131,8 @@ If you define these options you will disable the associated feature, which can s
If you define these options you will enable the associated feature, which may increase your code size.
+* `#define ENABLE_COMPILE_KEYCODE`
+ * Enables the `QK_MAKE` keycode
* `#define FORCE_NKRO`
* NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
* `#define STRICT_LAYER_RELEASE`
diff --git a/docs/keycodes.md b/docs/keycodes.md
index 58ce43d309c5..942e0a661609 100644
--- a/docs/keycodes.md
+++ b/docs/keycodes.md
@@ -219,11 +219,12 @@ See also: [Basic Keycodes](keycodes_basic.md)
See also: [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
-|Key |Aliases |Description |
-|-----------------|---------|-------------------------------------------------------|
-|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
-|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
-|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory)|
+|Key |Aliases |Description |
+|-----------------|---------|---------------------------------------------------------------------------------|
+|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
+|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
+|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) |
+|`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held |
## Audio Keys :id=audio-keys
diff --git a/docs/quantum_keycodes.md b/docs/quantum_keycodes.md
index 8e29e05886c0..46a8b7de1943 100644
--- a/docs/quantum_keycodes.md
+++ b/docs/quantum_keycodes.md
@@ -8,8 +8,9 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
## QMK Keycodes :id=qmk-keycodes
-|Key |Aliases |Description |
-|-----------------|---------|-------------------------------------------------------|
-|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
-|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
-|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory)|
+|Key |Aliases |Description |
+|-----------------|---------|---------------------------------------------------------------------------------|
+|`QK_BOOTLOADER` |`QK_BOOT`|Put the keyboard into bootloader mode for flashing |
+|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode |
+|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory) |
+|`QK_MAKE` | |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held |
diff --git a/quantum/quantum.c b/quantum/quantum.c
index ef6e5ac1df75..d4e91ddd37fb 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -357,6 +357,26 @@ bool process_record_quantum(keyrecord_t *record) {
case ONESHOT_DISABLE:
oneshot_disable();
break;
+#endif
+#ifdef ENABLE_COMPILE_KEYCODE
+ case QK_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
+ {
+# ifdef NO_ACTION_ONESHOT
+ const uint8_t temp_mod = mod_config(get_mods());
+# else
+ const uint8_t temp_mod = mod_config(get_mods() | get_oneshot_mods());
+ clear_oneshot_mods();
+# endif
+ clear_mods();
+
+ SEND_STRING_DELAY("qmk", TAP_CODE_DELAY);
+ if (temp_mod & MOD_MASK_SHIFT) { // if shift is held, flash rather than compile
+ SEND_STRING_DELAY(" flash ", TAP_CODE_DELAY);
+ } else {
+ SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
+ }
+ SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
+ }
#endif
}
}
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 2552c48165fd..dacfe5bdcd27 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -595,6 +595,8 @@ enum quantum_keycodes {
MAGIC_TOGGLE_CONTROL_CAPSLOCK,
+ QK_MAKE,
+
// Start of custom keycode range for keyboards and keymaps - always leave at the end
SAFE_RANGE
};
From e5823b56501598c39d3f57719cf32f344212ede6 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Fri, 18 Mar 2022 01:09:29 +0000
Subject: [PATCH 053/221] [CLI] Add common util for dumping generated content
(#16674)
---
lib/python/qmk/cli/generate/config_h.py | 18 ++-----
lib/python/qmk/cli/generate/dfu_header.py | 18 ++-----
lib/python/qmk/cli/generate/keyboard_h.py | 18 ++-----
lib/python/qmk/cli/generate/layouts.py | 19 ++-----
lib/python/qmk/cli/generate/rules_mk.py | 14 ++---
lib/python/qmk/cli/generate/version_h.py | 42 +++++++++++----
lib/python/qmk/commands.py | 54 ++++++-------------
lib/python/qmk/constants.py | 63 +++++++++++++++++++++++
8 files changed, 131 insertions(+), 115 deletions(-)
diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py
index 24bbbdf51726..fdc76b23d472 100755
--- a/lib/python/qmk/cli/generate/config_h.py
+++ b/lib/python/qmk/cli/generate/config_h.py
@@ -9,7 +9,9 @@
from qmk.json_schema import json_load, validate
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.keymap import locate_keymap
+from qmk.commands import dump_lines
from qmk.path import normpath
+from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
def direct_pins(direct_pins, postfix):
@@ -181,7 +183,7 @@ def generate_config_h(cli):
kb_info_json = dotty(info_json(cli.args.keyboard))
# Build the info_config.h file.
- config_h_lines = ['/* This file was generated by `qmk generate-config-h`. Do not edit or copy.', ' */', '', '#pragma once']
+ config_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once']
generate_config_items(kb_info_json, config_h_lines)
@@ -194,16 +196,4 @@ def generate_config_h(cli):
generate_split_config(kb_info_json, config_h_lines)
# Show the results
- config_h = '\n'.join(config_h_lines)
-
- if cli.args.output:
- cli.args.output.parent.mkdir(parents=True, exist_ok=True)
- if cli.args.output.exists():
- cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
- cli.args.output.write_text(config_h)
-
- if not cli.args.quiet:
- cli.log.info('Wrote info_config.h to %s.', cli.args.output)
-
- else:
- print(config_h)
+ dump_lines(cli.args.output, config_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/cli/generate/dfu_header.py b/lib/python/qmk/cli/generate/dfu_header.py
index 7fb585fc7d95..e87311738741 100644
--- a/lib/python/qmk/cli/generate/dfu_header.py
+++ b/lib/python/qmk/cli/generate/dfu_header.py
@@ -7,6 +7,8 @@
from qmk.info import info_json
from qmk.path import is_keyboard, normpath
from qmk.keyboard import keyboard_completer
+from qmk.commands import dump_lines
+from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
@@ -30,7 +32,7 @@ def generate_dfu_header(cli):
# Build the Keyboard.h file.
kb_info_json = dotty(info_json(cli.config.generate_dfu_header.keyboard))
- keyboard_h_lines = ['/* This file was generated by `qmk generate-dfu-header`. Do not edit or copy.', ' */', '', '#pragma once']
+ keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once']
keyboard_h_lines.append(f'#define MANUFACTURER {kb_info_json["manufacturer"]}')
keyboard_h_lines.append(f'#define PRODUCT {kb_info_json["keyboard_name"]} Bootloader')
@@ -45,16 +47,4 @@ def generate_dfu_header(cli):
keyboard_h_lines.append(f'#define QMK_SPEAKER {kb_info_json["qmk_lufa_bootloader.speaker"]}')
# Show the results
- keyboard_h = '\n'.join(keyboard_h_lines)
-
- if cli.args.output:
- cli.args.output.parent.mkdir(parents=True, exist_ok=True)
- if cli.args.output.exists():
- cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
- cli.args.output.write_text(keyboard_h)
-
- if not cli.args.quiet:
- cli.log.info('Wrote Keyboard.h to %s.', cli.args.output)
-
- else:
- print(keyboard_h)
+ dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py
index f05178cedef7..2058865cbf75 100755
--- a/lib/python/qmk/cli/generate/keyboard_h.py
+++ b/lib/python/qmk/cli/generate/keyboard_h.py
@@ -3,8 +3,10 @@
from milc import cli
from qmk.info import info_json
+from qmk.commands import dump_lines
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.path import normpath
+from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
def would_populate_layout_h(keyboard):
@@ -36,22 +38,10 @@ def generate_keyboard_h(cli):
has_layout_h = would_populate_layout_h(cli.args.keyboard)
# Build the layouts.h file.
- keyboard_h_lines = ['/* This file was generated by `qmk generate-keyboard-h`. Do not edit or copy.', ' */', '', '#pragma once', '#include "quantum.h"']
+ keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '#include "quantum.h"']
if not has_layout_h:
keyboard_h_lines.append('#pragma error(".h is only optional for data driven keyboards - kb.h == bad times")')
# Show the results
- keyboard_h = '\n'.join(keyboard_h_lines) + '\n'
-
- if cli.args.output:
- cli.args.output.parent.mkdir(parents=True, exist_ok=True)
- if cli.args.output.exists():
- cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
- cli.args.output.write_text(keyboard_h)
-
- if not cli.args.quiet:
- cli.log.info('Wrote keyboard_h to %s.', cli.args.output)
-
- else:
- print(keyboard_h)
+ dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/cli/generate/layouts.py b/lib/python/qmk/cli/generate/layouts.py
index a21311bd49e2..193633baf6a0 100755
--- a/lib/python/qmk/cli/generate/layouts.py
+++ b/lib/python/qmk/cli/generate/layouts.py
@@ -2,11 +2,12 @@
"""
from milc import cli
-from qmk.constants import COL_LETTERS, ROW_LETTERS
+from qmk.constants import COL_LETTERS, ROW_LETTERS, GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.info import info_json
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.path import is_keyboard, normpath
+from qmk.commands import dump_lines
usb_properties = {
'vid': 'VENDOR_ID',
@@ -38,7 +39,7 @@ def generate_layouts(cli):
kb_info_json = info_json(cli.config.generate_layouts.keyboard)
# Build the layouts.h file.
- layouts_h_lines = ['/* This file was generated by `qmk generate-layouts`. Do not edit or copy.', ' */', '', '#pragma once']
+ layouts_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once']
if 'matrix_size' not in kb_info_json:
cli.log.error('%s: Invalid matrix config.', cli.config.generate_layouts.keyboard)
@@ -86,16 +87,4 @@ def generate_layouts(cli):
layouts_h_lines.append('#endif')
# Show the results
- layouts_h = '\n'.join(layouts_h_lines) + '\n'
-
- if cli.args.output:
- cli.args.output.parent.mkdir(parents=True, exist_ok=True)
- if cli.args.output.exists():
- cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
- cli.args.output.write_text(layouts_h)
-
- if not cli.args.quiet:
- cli.log.info('Wrote info_config.h to %s.', cli.args.output)
-
- else:
- print(layouts_h)
+ dump_lines(cli.args.output, layouts_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py
index ce824f6378e6..29a1130f9912 100755
--- a/lib/python/qmk/cli/generate/rules_mk.py
+++ b/lib/python/qmk/cli/generate/rules_mk.py
@@ -9,7 +9,9 @@
from qmk.json_schema import json_load, validate
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.keymap import locate_keymap
+from qmk.commands import dump_lines
from qmk.path import normpath
+from qmk.constants import GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE
def process_mapping_rule(kb_info_json, rules_key, info_dict):
@@ -55,7 +57,7 @@ def generate_rules_mk(cli):
kb_info_json = dotty(info_json(cli.args.keyboard))
info_rules_map = json_load(Path('data/mappings/info_rules.json'))
- rules_mk_lines = ['# This file was generated by `qmk generate-rules-mk`. Do not edit or copy.', '']
+ rules_mk_lines = [GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE]
# Iterate through the info_rules map to generate basic rules
for rules_key, info_dict in info_rules_map.items():
@@ -83,14 +85,9 @@ def generate_rules_mk(cli):
rules_mk_lines.append('CUSTOM_MATRIX ?= yes')
# Show the results
- rules_mk = '\n'.join(rules_mk_lines) + '\n'
+ dump_lines(cli.args.output, rules_mk_lines)
if cli.args.output:
- cli.args.output.parent.mkdir(parents=True, exist_ok=True)
- if cli.args.output.exists():
- cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
- cli.args.output.write_text(rules_mk)
-
if cli.args.quiet:
if cli.args.escape:
print(cli.args.output.as_posix().replace(' ', '\\ '))
@@ -98,6 +95,3 @@ def generate_rules_mk(cli):
print(cli.args.output)
else:
cli.log.info('Wrote rules.mk to %s.', cli.args.output)
-
- else:
- print(rules_mk)
diff --git a/lib/python/qmk/cli/generate/version_h.py b/lib/python/qmk/cli/generate/version_h.py
index 69341e36f084..be9646748e25 100644
--- a/lib/python/qmk/cli/generate/version_h.py
+++ b/lib/python/qmk/cli/generate/version_h.py
@@ -1,9 +1,15 @@
"""Used by the make system to generate version.h for use in code.
"""
+from time import strftime
+
from milc import cli
-from qmk.commands import create_version_h
from qmk.path import normpath
+from qmk.commands import dump_lines
+from qmk.commands import get_git_version
+from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
+
+TIME_FMT = '%Y-%m-%d-%H:%M:%S'
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
@@ -17,15 +23,29 @@ def generate_version_h(cli):
if cli.args.skip_all:
cli.args.skip_git = True
- version_h = create_version_h(cli.args.skip_git, cli.args.skip_all)
-
- if cli.args.output:
- cli.args.output.parent.mkdir(parents=True, exist_ok=True)
- if cli.args.output.exists():
- cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
- cli.args.output.write_text(version_h)
+ if cli.args.skip_all:
+ current_time = "1970-01-01-00:00:00"
+ else:
+ current_time = strftime(TIME_FMT)
- if not cli.args.quiet:
- cli.log.info('Wrote version.h to %s.', cli.args.output)
+ if cli.args.skip_git:
+ git_version = "NA"
+ chibios_version = "NA"
+ chibios_contrib_version = "NA"
else:
- print(version_h)
+ git_version = get_git_version(current_time)
+ chibios_version = get_git_version(current_time, "chibios", "os")
+ chibios_contrib_version = get_git_version(current_time, "chibios-contrib", "os")
+
+ # Build the version.h file.
+ version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once']
+
+ version_h_lines.append(f"""
+#define QMK_VERSION "{git_version}"
+#define QMK_BUILDDATE "{current_time}"
+#define CHIBIOS_VERSION "{chibios_version}"
+#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}"
+""")
+
+ # Show the results
+ dump_lines(cli.args.output, version_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py
index e38f17156a74..44bd97d9be82 100644
--- a/lib/python/qmk/commands.py
+++ b/lib/python/qmk/commands.py
@@ -5,7 +5,6 @@
import shutil
from pathlib import Path
from subprocess import DEVNULL
-from time import strftime
from milc import cli
import jsonschema
@@ -14,8 +13,6 @@
from qmk.constants import QMK_FIRMWARE, KEYBOARD_OUTPUT_PREFIX
from qmk.json_schema import json_load, validate
-time_fmt = '%Y-%m-%d-%H:%M:%S'
-
def _find_make():
"""Returns the correct make command for this environment.
@@ -136,37 +133,6 @@ def get_make_parallel_args(parallel=1):
return parallel_args
-def create_version_h(skip_git=False, skip_all=False):
- """Generate version.h contents
- """
- if skip_all:
- current_time = "1970-01-01-00:00:00"
- else:
- current_time = strftime(time_fmt)
-
- if skip_git:
- git_version = "NA"
- chibios_version = "NA"
- chibios_contrib_version = "NA"
- else:
- git_version = get_git_version(current_time)
- chibios_version = get_git_version(current_time, "chibios", "os")
- chibios_contrib_version = get_git_version(current_time, "chibios-contrib", "os")
-
- version_h_lines = f"""/* This file was automatically generated. Do not edit or copy.
- */
-
-#pragma once
-
-#define QMK_VERSION "{git_version}"
-#define QMK_BUILDDATE "{current_time}"
-#define CHIBIOS_VERSION "{chibios_version}"
-#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}"
-"""
-
- return version_h_lines
-
-
def compile_configurator_json(user_keymap, bootloader=None, parallel=1, **env_vars):
"""Convert a configurator export JSON file into a C file and then compile it.
@@ -201,9 +167,6 @@ def compile_configurator_json(user_keymap, bootloader=None, parallel=1, **env_va
keymap_dir.mkdir(exist_ok=True, parents=True)
keymap_c.write_text(c_text)
- version_h = Path('quantum/version.h')
- version_h.write_text(create_version_h())
-
# Return a command that can be run to make the keymap and flash if given
verbose = 'true' if cli.config.general.verbose else 'false'
color = 'true' if cli.config.general.color else 'false'
@@ -357,3 +320,20 @@ def in_virtualenv():
"""
active_prefix = getattr(sys, "base_prefix", None) or getattr(sys, "real_prefix", None) or sys.prefix
return active_prefix != sys.prefix
+
+
+def dump_lines(output_file, lines, quiet=True):
+ """Handle dumping to stdout or file
+ Creates parent folders if required
+ """
+ generated = '\n'.join(lines) + '\n'
+ if output_file and output_file.name != '-':
+ output_file.parent.mkdir(parents=True, exist_ok=True)
+ if output_file.exists():
+ output_file.replace(output_file.parent / (output_file.name + '.bak'))
+ output_file.write_text(generated)
+
+ if not quiet:
+ cli.log.info(f'Wrote {output_file.name} to {output_file}.')
+ else:
+ print(generated)
diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py
index e4b699cdb110..6956b7077221 100644
--- a/lib/python/qmk/constants.py
+++ b/lib/python/qmk/constants.py
@@ -1,6 +1,7 @@
"""Information that should be available to the python library.
"""
from os import environ
+from datetime import date
from pathlib import Path
# The root of the qmk_firmware tree.
@@ -75,3 +76,65 @@
# Constants that should match their counterparts in make
BUILD_DIR = environ.get('BUILD_DIR', '.build')
KEYBOARD_OUTPUT_PREFIX = f'{BUILD_DIR}/obj_'
+
+# Headers for generated files
+GPL2_HEADER_C_LIKE = f'''\
+// Copyright {date.today().year} QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+'''
+
+GPL2_HEADER_SH_LIKE = f'''\
+# Copyright {date.today().year} QMK
+# SPDX-License-Identifier: GPL-2.0-or-later
+'''
+
+GENERATED_HEADER_C_LIKE = '''\
+/*******************************************************************************
+ 88888888888 888 d8b .d888 d8b 888 d8b
+ 888 888 Y8P d88P" Y8P 888 Y8P
+ 888 888 888 888
+ 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
+ 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
+ 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
+ 888 888 888 888 X88 888 888 888 Y8b. 888 X88
+ 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
+ 888 888
+ 888 888
+ 888 888
+ .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
+ d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
+ 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
+ Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
+ "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
+ 888
+ Y8b d88P
+ "Y88P"
+*******************************************************************************/
+'''
+
+GENERATED_HEADER_SH_LIKE = '''\
+################################################################################
+#
+# 88888888888 888 d8b .d888 d8b 888 d8b
+# 888 888 Y8P d88P" Y8P 888 Y8P
+# 888 888 888 888
+# 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
+# 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
+# 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
+# 888 888 888 888 X88 888 888 888 Y8b. 888 X88
+# 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
+#
+# 888 888
+# 888 888
+# 888 888
+# .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
+# d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
+# 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
+# Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
+# "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
+# 888
+# Y8b d88P
+# "Y88P"
+#
+################################################################################
+'''
From ed773ab73cab83b842dc62ff94ffb337ec66a5f3 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Fri, 18 Mar 2022 16:02:24 +0000
Subject: [PATCH 054/221] Relocate CLI git interactions (#16682)
---
lib/python/qmk/cli/doctor/check.py | 12 ---
lib/python/qmk/cli/doctor/main.py | 3 +-
lib/python/qmk/cli/generate/version_h.py | 8 +-
lib/python/qmk/cli/new/keyboard.py | 2 +-
lib/python/qmk/commands.py | 105 +---------------------
lib/python/qmk/git.py | 110 +++++++++++++++++++++++
6 files changed, 118 insertions(+), 122 deletions(-)
create mode 100644 lib/python/qmk/git.py
diff --git a/lib/python/qmk/cli/doctor/check.py b/lib/python/qmk/cli/doctor/check.py
index 2d691b64b050..8a0422ba72f8 100644
--- a/lib/python/qmk/cli/doctor/check.py
+++ b/lib/python/qmk/cli/doctor/check.py
@@ -7,7 +7,6 @@
from milc import cli
from qmk import submodules
-from qmk.constants import QMK_FIRMWARE
class CheckStatus(Enum):
@@ -150,14 +149,3 @@ def is_executable(command):
cli.log.error("{fg_red}Can't run `%s %s`", command, version_arg)
return False
-
-
-def check_git_repo():
- """Checks that the .git directory exists inside QMK_HOME.
-
- This is a decent enough indicator that the qmk_firmware directory is a
- proper Git repository, rather than a .zip download from GitHub.
- """
- dot_git = QMK_FIRMWARE / '.git'
-
- return CheckStatus.OK if dot_git.exists() else CheckStatus.WARNING
diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py
index 2e5e221e8ffd..2898a9894c0a 100755
--- a/lib/python/qmk/cli/doctor/main.py
+++ b/lib/python/qmk/cli/doctor/main.py
@@ -11,7 +11,8 @@
from qmk import submodules
from qmk.constants import QMK_FIRMWARE, QMK_FIRMWARE_UPSTREAM
from .check import CheckStatus, check_binaries, check_binary_versions, check_submodules
-from qmk.commands import git_check_repo, git_get_branch, git_get_tag, git_is_dirty, git_get_remotes, git_check_deviation, in_virtualenv
+from qmk.git import git_check_repo, git_get_branch, git_get_tag, git_is_dirty, git_get_remotes, git_check_deviation
+from qmk.commands import in_virtualenv
def os_tests():
diff --git a/lib/python/qmk/cli/generate/version_h.py b/lib/python/qmk/cli/generate/version_h.py
index be9646748e25..a75702c529a3 100644
--- a/lib/python/qmk/cli/generate/version_h.py
+++ b/lib/python/qmk/cli/generate/version_h.py
@@ -6,7 +6,7 @@
from qmk.path import normpath
from qmk.commands import dump_lines
-from qmk.commands import get_git_version
+from qmk.git import git_get_version
from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
TIME_FMT = '%Y-%m-%d-%H:%M:%S'
@@ -33,9 +33,9 @@ def generate_version_h(cli):
chibios_version = "NA"
chibios_contrib_version = "NA"
else:
- git_version = get_git_version(current_time)
- chibios_version = get_git_version(current_time, "chibios", "os")
- chibios_contrib_version = get_git_version(current_time, "chibios-contrib", "os")
+ git_version = git_get_version() or current_time
+ chibios_version = git_get_version("chibios", "os") or current_time
+ chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time
# Build the version.h file.
version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once']
diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py
index 6fa9ad5b2c44..1cdfe5320687 100644
--- a/lib/python/qmk/cli/new/keyboard.py
+++ b/lib/python/qmk/cli/new/keyboard.py
@@ -10,7 +10,7 @@
from milc import cli
from milc.questions import choice, question
-from qmk.commands import git_get_username
+from qmk.git import git_get_username
from qmk.json_schema import load_jsonschema
from qmk.path import keyboard
from qmk.json_encoders import InfoJSONEncoder
diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py
index 44bd97d9be82..d0bd00beb74f 100644
--- a/lib/python/qmk/commands.py
+++ b/lib/python/qmk/commands.py
@@ -4,13 +4,12 @@
import sys
import shutil
from pathlib import Path
-from subprocess import DEVNULL
from milc import cli
import jsonschema
import qmk.keymap
-from qmk.constants import QMK_FIRMWARE, KEYBOARD_OUTPUT_PREFIX
+from qmk.constants import KEYBOARD_OUTPUT_PREFIX
from qmk.json_schema import json_load, validate
@@ -90,31 +89,6 @@ def create_make_command(keyboard, keymap, target=None, dry_run=False, parallel=1
return create_make_target(':'.join(make_args), dry_run=dry_run, parallel=parallel, **env_vars)
-def get_git_version(current_time, repo_dir='.', check_dir='.'):
- """Returns the current git version for a repo, or the current time.
- """
- git_describe_cmd = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags']
-
- if repo_dir != '.':
- repo_dir = Path('lib') / repo_dir
-
- if check_dir != '.':
- check_dir = repo_dir / check_dir
-
- if Path(check_dir).exists():
- git_describe = cli.run(git_describe_cmd, stdin=DEVNULL, cwd=repo_dir)
-
- if git_describe.returncode == 0:
- return git_describe.stdout.strip()
-
- else:
- cli.log.warn(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}')
- print(git_describe.stderr)
- return current_time
-
- return current_time
-
-
def get_make_parallel_args(parallel=1):
"""Returns the arguments for running the specified number of parallel jobs.
"""
@@ -237,83 +211,6 @@ def parse_configurator_json(configurator_file):
return user_keymap
-def git_get_username():
- """Retrieves user's username from Git config, if set.
- """
- git_username = cli.run(['git', 'config', '--get', 'user.name'])
-
- if git_username.returncode == 0 and git_username.stdout:
- return git_username.stdout.strip()
-
-
-def git_check_repo():
- """Checks that the .git directory exists inside QMK_HOME.
-
- This is a decent enough indicator that the qmk_firmware directory is a
- proper Git repository, rather than a .zip download from GitHub.
- """
- dot_git_dir = QMK_FIRMWARE / '.git'
-
- return dot_git_dir.is_dir()
-
-
-def git_get_branch():
- """Returns the current branch for a repo, or None.
- """
- git_branch = cli.run(['git', 'branch', '--show-current'])
- if not git_branch.returncode != 0 or not git_branch.stdout:
- # Workaround for Git pre-2.22
- git_branch = cli.run(['git', 'rev-parse', '--abbrev-ref', 'HEAD'])
-
- if git_branch.returncode == 0:
- return git_branch.stdout.strip()
-
-
-def git_get_tag():
- """Returns the current tag for a repo, or None.
- """
- git_tag = cli.run(['git', 'describe', '--abbrev=0', '--tags'])
- if git_tag.returncode == 0:
- return git_tag.stdout.strip()
-
-
-def git_is_dirty():
- """Returns 1 if repo is dirty, or 0 if clean
- """
- git_diff_staged_cmd = ['git', 'diff', '--quiet']
- git_diff_unstaged_cmd = [*git_diff_staged_cmd, '--cached']
-
- unstaged = cli.run(git_diff_staged_cmd)
- staged = cli.run(git_diff_unstaged_cmd)
-
- return unstaged.returncode != 0 or staged.returncode != 0
-
-
-def git_get_remotes():
- """Returns the current remotes for a repo.
- """
- remotes = {}
-
- git_remote_show_cmd = ['git', 'remote', 'show']
- git_remote_get_cmd = ['git', 'remote', 'get-url']
-
- git_remote_show = cli.run(git_remote_show_cmd)
- if git_remote_show.returncode == 0:
- for name in git_remote_show.stdout.splitlines():
- git_remote_name = cli.run([*git_remote_get_cmd, name])
- remotes[name.strip()] = {"url": git_remote_name.stdout.strip()}
-
- return remotes
-
-
-def git_check_deviation(active_branch):
- """Return True if branch has custom commits
- """
- cli.run(['git', 'fetch', 'upstream', active_branch])
- deviations = cli.run(['git', '--no-pager', 'log', f'upstream/{active_branch}...{active_branch}'])
- return bool(deviations.returncode)
-
-
def in_virtualenv():
"""Check if running inside a virtualenv.
Based on https://stackoverflow.com/a/1883251
diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py
new file mode 100644
index 000000000000..beeb68914498
--- /dev/null
+++ b/lib/python/qmk/git.py
@@ -0,0 +1,110 @@
+"""Functions for working with the QMK repo.
+"""
+from subprocess import DEVNULL
+from pathlib import Path
+
+from milc import cli
+
+from qmk.constants import QMK_FIRMWARE
+
+
+def git_get_version(repo_dir='.', check_dir='.'):
+ """Returns the current git version for a repo, or None.
+ """
+ git_describe_cmd = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags']
+
+ if repo_dir != '.':
+ repo_dir = Path('lib') / repo_dir
+
+ if check_dir != '.':
+ check_dir = repo_dir / check_dir
+
+ if Path(check_dir).exists():
+ git_describe = cli.run(git_describe_cmd, stdin=DEVNULL, cwd=repo_dir)
+
+ if git_describe.returncode == 0:
+ return git_describe.stdout.strip()
+
+ else:
+ cli.log.warn(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}')
+ print(git_describe.stderr)
+ return None
+
+ return None
+
+
+def git_get_username():
+ """Retrieves user's username from Git config, if set.
+ """
+ git_username = cli.run(['git', 'config', '--get', 'user.name'])
+
+ if git_username.returncode == 0 and git_username.stdout:
+ return git_username.stdout.strip()
+
+
+def git_get_branch():
+ """Returns the current branch for a repo, or None.
+ """
+ git_branch = cli.run(['git', 'branch', '--show-current'])
+ if not git_branch.returncode != 0 or not git_branch.stdout:
+ # Workaround for Git pre-2.22
+ git_branch = cli.run(['git', 'rev-parse', '--abbrev-ref', 'HEAD'])
+
+ if git_branch.returncode == 0:
+ return git_branch.stdout.strip()
+
+
+def git_get_tag():
+ """Returns the current tag for a repo, or None.
+ """
+ git_tag = cli.run(['git', 'describe', '--abbrev=0', '--tags'])
+ if git_tag.returncode == 0:
+ return git_tag.stdout.strip()
+
+
+def git_get_remotes():
+ """Returns the current remotes for a repo.
+ """
+ remotes = {}
+
+ git_remote_show_cmd = ['git', 'remote', 'show']
+ git_remote_get_cmd = ['git', 'remote', 'get-url']
+
+ git_remote_show = cli.run(git_remote_show_cmd)
+ if git_remote_show.returncode == 0:
+ for name in git_remote_show.stdout.splitlines():
+ git_remote_name = cli.run([*git_remote_get_cmd, name])
+ remotes[name.strip()] = {"url": git_remote_name.stdout.strip()}
+
+ return remotes
+
+
+def git_is_dirty():
+ """Returns 1 if repo is dirty, or 0 if clean
+ """
+ git_diff_staged_cmd = ['git', 'diff', '--quiet']
+ git_diff_unstaged_cmd = [*git_diff_staged_cmd, '--cached']
+
+ unstaged = cli.run(git_diff_staged_cmd)
+ staged = cli.run(git_diff_unstaged_cmd)
+
+ return unstaged.returncode != 0 or staged.returncode != 0
+
+
+def git_check_repo():
+ """Checks that the .git directory exists inside QMK_HOME.
+
+ This is a decent enough indicator that the qmk_firmware directory is a
+ proper Git repository, rather than a .zip download from GitHub.
+ """
+ dot_git_dir = QMK_FIRMWARE / '.git'
+
+ return dot_git_dir.is_dir()
+
+
+def git_check_deviation(active_branch):
+ """Return True if branch has custom commits
+ """
+ cli.run(['git', 'fetch', 'upstream', active_branch])
+ deviations = cli.run(['git', '--no-pager', 'log', f'upstream/{active_branch}...{active_branch}'])
+ return bool(deviations.returncode)
From 773242503ca7e12f7a77a588789640d0dbde8c04 Mon Sep 17 00:00:00 2001
From: Florian
Date: Fri, 18 Mar 2022 18:24:43 +0100
Subject: [PATCH 055/221] annepro2: Add more LED functionalities to
default-layer-indicators (#16676)
---
keyboards/annepro2/annepro2.c | 9 +++++++++
keyboards/annepro2/annepro2.h | 1 +
.../annepro2/keymaps/default-layer-indicators/keymap.c | 9 +++++++--
3 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/keyboards/annepro2/annepro2.c b/keyboards/annepro2/annepro2.c
index 876726531593..0f49f9310437 100644
--- a/keyboards/annepro2/annepro2.c
+++ b/keyboards/annepro2/annepro2.c
@@ -192,6 +192,15 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
ap2_led_reset_foreground_color();
break;
+ case KC_AP_LED_TOG:
+ if (ap2_led_status.matrix_enabled) {
+ ap2_led_disable();
+ } else {
+ ap2_led_enable();
+ ap2_led_reset_foreground_color();
+ }
+ break;
+
case KC_AP_LED_NEXT_PROFILE:
ap2_led_next_profile();
ap2_led_reset_foreground_color();
diff --git a/keyboards/annepro2/annepro2.h b/keyboards/annepro2/annepro2.h
index 1b5933f57724..143904b6ad1d 100644
--- a/keyboards/annepro2/annepro2.h
+++ b/keyboards/annepro2/annepro2.h
@@ -53,6 +53,7 @@ enum AP2KeyCodes {
KC_AP2_USB,
KC_AP_LED_ON,
KC_AP_LED_OFF,
+ KC_AP_LED_TOG,
KC_AP_LED_NEXT_PROFILE,
KC_AP_LED_PREV_PROFILE,
KC_AP_LED_NEXT_INTENSITY,
diff --git a/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c b/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c
index 405769466a94..1fd97c584e17 100644
--- a/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c
+++ b/keyboards/annepro2/keymaps/default-layer-indicators/keymap.c
@@ -83,7 +83,7 @@ enum anne_pro_layers {
/*
* Layer FN2
* ,-----------------------------------------------------------------------------------------.
- * | ~ | BT1 | BT2 | BT3 | BT4 | F5 | F6 | F7 |LEDOF|LEDON| F10 | F11 | F12 | Bksp |
+ * | ~ | BT1 | BT2 | BT3 | BT4 | F5 | F6 | F7 | F8 |LEDTG|LEDI+|LEDPV|LEDNX| Bksp |
* |-----------------------------------------------------------------------------------------+
* | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | \ |
* |-----------------------------------------------------------------------------------------+
@@ -96,7 +96,7 @@ enum anne_pro_layers {
*
*/
[FN2] = LAYOUT_60_ansi( /* FN2 */
- _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, KC_AP_LED_OFF, KC_AP_LED_ON, _______, _______, _______, _______,
+ _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_LED_TOG, KC_AP_LED_NEXT_INTENSITY, KC_AP_LED_PREV_PROFILE, KC_AP_LED_NEXT_PROFILE, _______,
MO(FN2), _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______,
@@ -105,6 +105,11 @@ enum anne_pro_layers {
};
// clang-format on
+void keyboard_post_init_user(void) {
+ ap2_led_enable();
+ ap2_led_set_profile(7);
+}
+
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case FN1:
From 61c644f6d00cc107e9079aa5e87716174ad77d44 Mon Sep 17 00:00:00 2001
From: Drashna Jaelre
Date: Fri, 18 Mar 2022 11:49:22 -0700
Subject: [PATCH 056/221] [Keyboard] Update Tractyl Manuform config files
(#16684)
---
.../tractyl_manuform/5x6_right/f411/chconf.h | 38 -------------------
.../tractyl_manuform/5x6_right/f411/config.h | 8 ----
2 files changed, 46 deletions(-)
delete mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/f411/chconf.h
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/chconf.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/chconf.h
deleted file mode 100644
index 8b55eaeef089..000000000000
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/chconf.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2020 QMK
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/handwired/onekey/blackpill_f411/chconf.h -r platforms/chibios/common/configs/chconf.h`
- */
-
-#pragma once
-
-#define CH_CFG_ST_FREQUENCY 10000
-
-#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
-
-#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
-
-#define CH_CFG_FACTORY_SEMAPHORES TRUE
-
-#define CH_CFG_FACTORY_MAILBOXES TRUE
-
-#define CH_CFG_FACTORY_OBJ_FIFOS TRUE
-
-#define CH_CFG_FACTORY_PIPES TRUE
-
-#include_next
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
index 87c323905717..6f19332a6272 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
@@ -100,14 +100,6 @@ along with this program. If not, see .
/* eeprom config */
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
-// #define EXTERNAL_EEPROM_BYTE_COUNT 8196
-// #define EXTERNAL_EEPROM_PAGE_SIZE 32
-// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2
-// #define DEBUG_EEPROM_OUTPUT
-
-#ifdef EEPROM_SPI
-# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8195
-#endif
/* pmw3360 config */
#define PMW3360_CS_PIN B0
From 06b6729b168334c6496288acf6734aa586d335e2 Mon Sep 17 00:00:00 2001
From: stanrc85 <47038504+stanrc85@users.noreply.github.com>
Date: Sat, 19 Mar 2022 02:52:33 -0400
Subject: [PATCH 057/221] [Keymap] Update some code and keyboard rules (#16680)
---
users/stanrc85/config.h | 6 ++++++
users/stanrc85/rules.mk | 4 +++-
users/stanrc85/stanrc85.c | 4 ++--
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/users/stanrc85/config.h b/users/stanrc85/config.h
index b883a21dd261..e12beedb90db 100644
--- a/users/stanrc85/config.h
+++ b/users/stanrc85/config.h
@@ -15,6 +15,12 @@
#define INDICATOR_PIN_2 D4
#endif
+#ifdef KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303
+ #define INDICATOR_PIN_0 B2
+ #define INDICATOR_PIN_1 C15
+ #define INDICATOR_PIN_2 B9
+#endif
+
#ifdef KEYBOARD_boardsource_the_mark
#define RGB_MATRIX_KEYPRESSES
#endif
diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk
index 16cf1ace5d65..94f4027b965f 100644
--- a/users/stanrc85/rules.mk
+++ b/users/stanrc85/rules.mk
@@ -36,8 +36,10 @@ ifeq ($(strip $(KEYBOARD)), jacky_studio/bear_65)
endif
ifeq ($(strip $(KEYBOARD)), mechlovin/adelais/rgb_led/rev2)
SRC += rgb_layers.c
+ SRC += rgb_timeout.c
endif
ifeq ($(strip $(KEYBOARD)), mechlovin/adelais/standard_led/arm/rev4/stm32f303)
+ OPT_DEFS += -DHAS_INDICATORS
SRC += rgb_timeout.c
- SRC += layer_rgb.c
+ SRC += indicator_layers_sneakbox.c
endif
diff --git a/users/stanrc85/stanrc85.c b/users/stanrc85/stanrc85.c
index f8555d87bd6c..56e67e52b1f2 100644
--- a/users/stanrc85/stanrc85.c
+++ b/users/stanrc85/stanrc85.c
@@ -68,7 +68,7 @@ void lock_unlock (qk_tap_dance_state_t *state, void *user_data) {
tap_code16(KC_CAD);
#if defined(HAS_INDICATORS)
led_user = 0;
- #if defined(KEYBOARD_sneakbox_aliceclone)
+ #if defined(KEYBOARD_sneakbox_aliceclone) || defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303)
led_user = 1;
#endif
writePin(INDICATOR_PIN_0, !led_user);
@@ -84,7 +84,7 @@ void lock_unlock (qk_tap_dance_state_t *state, void *user_data) {
tap_code16(KC_LOCK);
#if defined(HAS_INDICATORS)
led_user = 1;
- #if defined(KEYBOARD_sneakbox_aliceclone)
+ #if defined(KEYBOARD_sneakbox_aliceclone) || defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303)
led_user = 0;
#endif
writePin(INDICATOR_PIN_2, !led_user);
From 9ee2effe8e61d32524b11092a0d04a96972c1493 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Sat, 19 Mar 2022 17:57:22 +1100
Subject: [PATCH 058/221] HD44780 driver rework (#16370)
---
builddefs/common_features.mk | 3 +-
docs/_summary.md | 2 +-
docs/feature_hd44780.md | 345 +++++++++++++++++---
drivers/lcd/hd44780.c | 284 +++++++++++++++++
drivers/lcd/hd44780.h | 220 +++++++++++++
platforms/avr/drivers/hd44780.c | 542 --------------------------------
platforms/avr/drivers/hd44780.h | 348 --------------------
7 files changed, 800 insertions(+), 944 deletions(-)
create mode 100644 drivers/lcd/hd44780.c
create mode 100644 drivers/lcd/hd44780.h
delete mode 100644 platforms/avr/drivers/hd44780.c
delete mode 100644 platforms/avr/drivers/hd44780.h
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 08d186d656c7..a1793f91a57d 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -646,8 +646,9 @@ ifeq ($(strip $(HAPTIC_ENABLE)),yes)
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
- SRC += platforms/avr/drivers/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
+ COMMON_VPATH += $(DRIVER_PATH)/lcd
+ SRC += hd44780.c
endif
VALID_OLED_DRIVER_TYPES := SSD1306 custom
diff --git a/docs/_summary.md b/docs/_summary.md
index 250a48fe6b07..249bfcd9edfa 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -94,7 +94,7 @@
* Hardware Features
* Displays
- * [HD44780 LCD Controller](feature_hd44780.md)
+ * [HD44780 LCD Driver](feature_hd44780.md)
* [ST7565 LCD Driver](feature_st7565.md)
* [OLED Driver](feature_oled_driver.md)
* Lighting
diff --git a/docs/feature_hd44780.md b/docs/feature_hd44780.md
index dc476c734f8d..4ade640baae7 100644
--- a/docs/feature_hd44780.md
+++ b/docs/feature_hd44780.md
@@ -1,57 +1,298 @@
-# HD44780 LCD Displays
-
-This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
-
-You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag in your keyboards `rules.mk` to yes.
-
-## Configuration
-
-You will need to configure the pins used by your display, and its number of lines and columns in your keyboard's `config.h`.
-
-
-Uncomment the section labled HD44780 and change the parameters as needed.
-````
-/*
- * HD44780 LCD Display Configuration
- */
-
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-````
-
-Should you need to configure other properties you can copy them from `quantum/hd44780.h` and set them in your `config.h`
+# HD44780 LCD Driver
+
+## Supported Hardware
+
+LCD modules using [HD44780U](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf) IC or equivalent, communicating in 4-bit mode.
+
+|Module|Size |Notes |
+|------|--------------|---------------------------------|
+|1602A |16x2, 5x8 dots| |
+|2004A |20x4, 5x8 dots|Untested, not currently supported|
+
+To run these modules at 3.3V, an additional MAX660 voltage converter IC must be soldered on, along with two 10µF capacitors. See [this page](https://www.codrey.com/electronic-circuits/hack-your-16x2-lcd/) for more details.
## Usage
-To initialize your display, call `lcd_init()` with one of these parameters:
-````
-LCD_DISP_OFF : display off
-LCD_DISP_ON : display on, cursor off
-LCD_DISP_ON_CURSOR : display on, cursor on
-LCD_DISP_ON_CURSOR_BLINK : display on, cursor on flashing
-````
-This is best done in your keyboards `matrix_init_kb` or your keymaps `matrix_init_user`.
-It is advised to clear the display before use.
-To do so call `lcd_clrscr()`.
+Add the following to your `rules.mk`:
+
+```make
+HD44780_ENABLE = yes
+```
+
+## Basic Configuration
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|-----------------------|--------------|-----------------------------------------------------------------------------------------------------|
+|`HD44780_DATA_PINS` |*Not defined* |(Required) An array of four GPIO pins connected to the display's D4-D7 pins, eg. `{ B1, B3, B2, B6 }`|
+|`HD44780_RS_PIN` |*Not defined* |(Required) The GPIO connected to the display's RS pin |
+|`HD44780_RW_PIN` |*Not defined* |(Required) The GPIO connected to the display's RW pin |
+|`HD44780_E_PIN` |*Not defined* |(Required) The GPIO connected to the display's E pin |
+|`HD44780_DISPLAY_COLS` |`16` |The number of visible characters on a single line of the display |
+|`HD44780_DISPLAY_LINES`|`2` |The number of visible lines on the display |
+|`HD44780_WRAP_LINES` |*Not defined* |If defined, input characters will wrap to the next line |
+
+## Examples
+
+### Hello World
+
+Add the following to your `keymap.c`:
+
+```c
+void keyboard_post_init_user(void) {
+ hd44780_init(true, true); // Show blinking cursor
+ hd44780_puts_P(PSTR("Hello, world!\n"));
+}
+```
+
+### Custom Character Definition
+
+Up to eight custom characters can be defined. This data is stored in the Character Generator RAM (CGRAM), and is not persistent across power cycles.
+
+This example defines the QMK Psi as the first custom character. The first 16 positions in the character set are reserved for the eight custom characters duplicated.
+
+```
+Byte | 16 8 4 2 1
+ 1 | x x x ■ □ ■ □ ■
+ 2 | x x x ■ □ ■ □ ■
+ 3 | x x x ■ □ ■ □ ■
+ 4 | x x x □ ■ ■ ■ □
+ 5 | x x x □ □ ■ □ □
+ 6 | x x x □ □ ■ □ □
+ 7 | x x x □ □ ■ □ □
+ 8 | x x x □ □ □ □ □
+```
+
+```c
+const uint8_t PROGMEM psi[8] = { 0x15, 0x15, 0x15, 0x0E, 0x04, 0x04, 0x04, 0x00 };
+
+void keyboard_post_init_user(void) {
+ hd44780_init(false, false);
+ hd44780_define_char_P(0, psi);
+ // Cursor is incremented while defining characters so must be reset
+ hd44780_home();
+ // 0x08 to avoid null terminator
+ hd44780_puts_P(PSTR("\x08 QMK Firmware"));
+}
+```
+
+## API
+
+### `void hd44780_init(bool cursor, bool blink)`
+
+Initialize the display.
+
+This function should be called only once, before any of the other functions can be called.
+
+#### Arguments
+
+ - `bool cursor`
+ Whether to show the cursor.
+ - `bool blink`
+ Whether to blink the cursor, if shown.
+
+---
+
+### `void hd44780_clear(void)`
+
+Clear the display.
+
+This function is called on init.
+
+---
+
+### `void hd44780_home(void)`
+
+Move the cursor to the home position.
+
+This function is called on init.
+
+---
+
+### `void hd44780_on(bool cursor, bool blink)`
+
+Turn the display on, and/or set the cursor properties.
+
+This function is called on init.
+
+#### Arguments
+
+ - `bool cursor`
+ Whether to show the cursor.
+ - `bool blink`
+ Whether to blink the cursor, if shown.
+
+---
+
+### `void hd44780_off(void)`
+
+Turn the display off.
+
+---
+
+### `void hd44780_set_cursor(uint8_t col, uint8_t line)`
+
+Move the cursor to the specified position on the display.
+
+#### Arguments
+
+ - `uint8_t col`
+ The column number to move to, from 0 to 15 on 16x2 displays.
+ - `bool line`
+ The line number to move to, either 0 or 1 on 16x2 displays.
+
+---
+
+### `void hd44780_putc(char c)`
+
+Print a character to the display. The newline character `\n` will move the cursor to the start of the next line.
+
+The exact character shown may depend on the ROM code of your particular display - refer to the datasheet for the full character set.
+
+#### Arguments
+
+ - `char c`
+ The character to print.
+
+---
+
+### `void hd44780_puts(const char *s)`
+
+Print a string of characters to the display.
+
+#### Arguments
+
+ - `const char *s`
+ The string to print.
+
+---
+
+### `void hd44780_puts_P(const char *s)`
+
+Print a string of characters from PROGMEM to the display.
+
+On ARM devices, this function is simply an alias of `hd44780_puts()`.
+
+#### Arguments
+
+ - `const char *s`
+ The PROGMEM string to print (ie. `PSTR("Hello")`).
+
+---
+
+### `void hd44780_define_char(uint8_t index, uint8_t *data)`
+
+Define a custom character.
+
+#### Arguments
+
+ - `uint8_t index`
+ The index of the custom character to define, from 0 to 7.
+ - `uint8_t *data`
+ An array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
+
+---
+
+### `void hd44780_define_char_P(uint8_t index, const uint8_t *data)`
+
+Define a custom character from PROGMEM.
+
+On ARM devices, this function is simply an alias of `hd44780_define_char()`.
+
+#### Arguments
+
+ - `uint8_t index`
+ The index of the custom character to define, from 0 to 7.
+ - `const uint8_t *data`
+ A PROGMEM array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
+
+---
+
+### `bool hd44780_busy(void)`
+
+Indicates whether the display is currently processing, and cannot accept instructions.
+
+#### Return Value
+
+`true` if the display is busy.
+
+---
+
+### `void hd44780_write(uint8_t data, bool isData)`
+
+Write a byte to the display.
+
+#### Arguments
+
+ - `uint8_t data`
+ The byte to send to the display.
+ - `bool isData`
+ Whether the byte is an instruction or character data.
+
+---
+
+### `uint8_t hd44780_read(bool isData)`
+
+Read a byte from the display.
+
+#### Arguments
+
+ - `bool isData`
+ Whether to read the current cursor position, or the character at the cursor.
+
+#### Return Value
+
+If `isData` is `true`, the returned byte will be the character at the current DDRAM address. Otherwise, it will be the current DDRAM address and the busy flag.
+
+---
+
+### `void hd44780_command(uint8_t command)`
+
+Send a command to the display. Refer to the datasheet and `hd44780.h` for the valid commands and defines.
+
+This function waits for the display to clear the busy flag before sending the command.
+
+#### Arguments
+
+ - `uint8_t command`
+ The command to send.
+
+---
+
+### `void hd44780_data(uint8_t data)`
+
+Send a byte of data to the display.
+
+This function waits for the display to clear the busy flag before sending the data.
+
+#### Arguments
+
+ - `uint8_t data`
+ The byte of data to send.
+
+---
+
+### `void hd44780_set_cgram_address(uint8_t address)`
+
+Set the CGRAM address.
+
+This function is used when defining custom characters.
+
+#### Arguments
+
+ - `uint8_t address`
+ The CGRAM address to move to, from `0x00` to `0x3F`.
+
+---
+
+### `void hd44780_set_ddram_address(uint8_t address)`
+
+Set the DDRAM address.
+
+This function is used when printing characters to the display, and setting the cursor.
-To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`.
+#### Arguments
-There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
+ - `uint8_t address`
+ The DDRAM address to move to, from `0x00` to `0x7F`.
diff --git a/drivers/lcd/hd44780.c b/drivers/lcd/hd44780.c
new file mode 100644
index 000000000000..c988ebe56c45
--- /dev/null
+++ b/drivers/lcd/hd44780.c
@@ -0,0 +1,284 @@
+/*
+Copyright 2022
+
+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 .
+*/
+
+#include "hd44780.h"
+#include "gpio.h"
+#include "progmem.h"
+#include "wait.h"
+
+#ifndef HD44780_DATA_PINS
+# error hd44780: no data pins defined!
+#endif
+
+#ifndef HD44780_RS_PIN
+# error hd44780: no RS pin defined!
+#endif
+
+#ifndef HD44780_RW_PIN
+# error hd44780: no R/W pin defined!
+#endif
+
+#ifndef HD44780_E_PIN
+# error hd44780: no E pin defined!
+#endif
+
+static const pin_t data_pins[4] = HD44780_DATA_PINS;
+
+#ifndef HD44780_DISPLAY_COLS
+# define HD44780_DISPLAY_COLS 16
+#endif
+
+#ifndef HD44780_DISPLAY_LINES
+# define HD44780_DISPLAY_LINES 2
+#endif
+
+#ifndef HD44780_DDRAM_LINE0_ADDR
+# define HD44780_DDRAM_LINE0_ADDR 0x00
+#endif
+#ifndef HD44780_DDRAM_LINE1_ADDR
+# define HD44780_DDRAM_LINE1_ADDR 0x40
+#endif
+
+#define HD44780_INIT_DELAY_MS 16
+#define HD44780_ENABLE_DELAY_US 1
+
+static void hd44780_latch(void) {
+ writePinHigh(HD44780_E_PIN);
+ wait_us(HD44780_ENABLE_DELAY_US);
+ writePinLow(HD44780_E_PIN);
+}
+
+void hd44780_write(uint8_t data, bool isData) {
+ writePin(HD44780_RS_PIN, isData);
+ writePinLow(HD44780_RW_PIN);
+
+ for (int i = 0; i < 4; i++) {
+ setPinOutput(data_pins[i]);
+ }
+
+ // Write high nibble
+ for (int i = 0; i < 4; i++) {
+ writePin(data_pins[i], (data >> 4) & (1 << i));
+ }
+ hd44780_latch();
+
+ // Write low nibble
+ for (int i = 0; i < 4; i++) {
+ writePin(data_pins[i], data & (1 << i));
+ }
+ hd44780_latch();
+
+ for (int i = 0; i < 4; i++) {
+ writePinHigh(data_pins[i]);
+ }
+}
+
+uint8_t hd44780_read(bool isData) {
+ uint8_t data = 0;
+
+ writePin(HD44780_RS_PIN, isData);
+ writePinHigh(HD44780_RW_PIN);
+
+ for (int i = 0; i < 4; i++) {
+ setPinInput(data_pins[i]);
+ }
+
+ writePinHigh(HD44780_E_PIN);
+ wait_us(HD44780_ENABLE_DELAY_US);
+
+ // Read high nibble
+ for (int i = 0; i < 4; i++) {
+ data |= (readPin(data_pins[i]) << i);
+ }
+
+ data <<= 4;
+
+ writePinLow(HD44780_E_PIN);
+ wait_us(HD44780_ENABLE_DELAY_US);
+ writePinHigh(HD44780_E_PIN);
+ wait_us(HD44780_ENABLE_DELAY_US);
+
+ // Read low nibble
+ for (int i = 0; i < 4; i++) {
+ data |= (readPin(data_pins[i]) << i);
+ }
+
+ writePinLow(HD44780_E_PIN);
+
+ return data;
+}
+
+bool hd44780_busy(void) {
+ return hd44780_read(false) & HD44780_BUSY_FLAG;
+}
+
+void hd44780_command(uint8_t command) {
+ while (hd44780_busy())
+ ;
+ hd44780_write(command, false);
+}
+
+void hd44780_data(uint8_t data) {
+ while (hd44780_busy())
+ ;
+ hd44780_write(data, true);
+}
+
+void hd44780_clear(void) {
+ hd44780_command(HD44780_CMD_CLEAR_DISPLAY);
+}
+
+void hd44780_home(void) {
+ hd44780_command(HD44780_CMD_RETURN_HOME);
+}
+
+void hd44780_on(bool cursor, bool blink) {
+ if (cursor) {
+ if (blink) {
+ hd44780_command(HD44780_CMD_DISPLAY | HD44780_DISPLAY_ON | HD44780_DISPLAY_CURSOR | HD44780_DISPLAY_BLINK);
+ } else {
+ hd44780_command(HD44780_CMD_DISPLAY | HD44780_DISPLAY_ON | HD44780_DISPLAY_CURSOR);
+ }
+ } else {
+ hd44780_command(HD44780_CMD_DISPLAY | HD44780_DISPLAY_ON);
+ }
+}
+
+void hd44780_off() {
+ hd44780_command(HD44780_CMD_DISPLAY);
+}
+
+void hd44780_set_cgram_address(uint8_t address) {
+ hd44780_command(HD44780_CMD_SET_CGRAM_ADDRESS + (address & 0x3F));
+}
+
+void hd44780_set_ddram_address(uint8_t address) {
+ hd44780_command(HD44780_CMD_SET_DDRAM_ADDRESS + (address & 0x7F));
+}
+
+void hd44780_init(bool cursor, bool blink) {
+ setPinOutput(HD44780_RS_PIN);
+ setPinOutput(HD44780_RW_PIN);
+ setPinOutput(HD44780_E_PIN);
+
+ for (int i = 0; i < 4; i++) {
+ setPinOutput(data_pins[i]);
+ }
+
+ wait_ms(HD44780_INIT_DELAY_MS);
+
+ // Manually configure for 4-bit mode - can't use hd44780_command() yet
+ // HD44780U datasheet, Fig. 24 (p46)
+ writePinHigh(data_pins[0]); // Function set
+ writePinHigh(data_pins[1]); // DL = 1
+ hd44780_latch();
+ wait_ms(5);
+ // Send again
+ hd44780_latch();
+ wait_us(64);
+ // And again (?)
+ hd44780_latch();
+ wait_us(64);
+
+ writePinLow(data_pins[0]); // DL = 0
+ hd44780_latch();
+ wait_us(64);
+
+#if HD44780_DISPLAY_LINES == 1
+ hd44780_command(HD44780_CMD_FUNCTION); // 4 bit, 1 line, 5x8 dots
+#else
+ hd44780_command(HD44780_CMD_FUNCTION | HD44780_FUNCTION_2_LINES); // 4 bit, 2 lines, 5x8 dots
+#endif
+ hd44780_on(cursor, blink);
+ hd44780_clear();
+ hd44780_home();
+ hd44780_command(HD44780_CMD_ENTRY_MODE | HD44780_ENTRY_MODE_INC);
+}
+
+void hd44780_set_cursor(uint8_t col, uint8_t line) {
+ register uint8_t address = col;
+
+#if HD44780_DISPLAY_LINES == 1
+ address += HD44780_DDRAM_LINE0_ADDR;
+#elif HD44780_DISPLAY_LINES == 2
+ if (line == 0) {
+ address += HD44780_DDRAM_LINE0_ADDR;
+ } else {
+ address += HD44780_DDRAM_LINE1_ADDR;
+ }
+#endif
+
+ hd44780_set_ddram_address(address);
+}
+
+void hd44780_define_char(uint8_t index, uint8_t *data) {
+ hd44780_set_cgram_address((index & 0x7) << 3);
+ for (uint8_t i = 0; i < 8; i++) {
+ hd44780_data(data[i]);
+ }
+}
+
+void hd44780_putc(char c) {
+ while (hd44780_busy())
+ ;
+ uint8_t current_position = hd44780_read(false);
+
+ if (c == '\n') {
+ hd44780_set_cursor(0, current_position < HD44780_DDRAM_LINE1_ADDR ? 1 : 0);
+ } else {
+#if defined(HD44780_WRAP_LINES)
+# if HD44780_DISPLAY_LINES == 1
+ if (current_position == HD44780_DDRAM_LINE0_ADDR + HD44780_DISPLAY_COLS) {
+ // Go to start of line
+ hd44780_set_cursor(0, 0);
+ }
+# elif HD44780_DISPLAY_LINES == 2
+ if (current_position == HD44780_DDRAM_LINE0_ADDR + HD44780_DISPLAY_COLS) {
+ // Go to start of second line
+ hd44780_set_cursor(0, 1);
+ } else if (current_position == HD44780_DDRAM_LINE1_ADDR + HD44780_DISPLAY_COLS) {
+ // Go to start of first line
+ hd44780_set_cursor(0, 0);
+ }
+# endif
+#endif
+ hd44780_data(c);
+ }
+}
+
+void hd44780_puts(const char *s) {
+ register char c;
+ while ((c = *s++)) {
+ hd44780_putc(c);
+ }
+}
+
+#if defined(__AVR__)
+void hd44780_define_char_P(uint8_t index, const uint8_t *data) {
+ hd44780_set_cgram_address(index << 3);
+ for (uint8_t i = 0; i < 8; i++) {
+ hd44780_data(pgm_read_byte(data++));
+ }
+}
+
+void hd44780_puts_P(const char *s) {
+ register char c;
+ while ((c = pgm_read_byte(s++))) {
+ hd44780_putc(c);
+ }
+}
+#endif
diff --git a/drivers/lcd/hd44780.h b/drivers/lcd/hd44780.h
new file mode 100644
index 000000000000..d4b8f9ea76a1
--- /dev/null
+++ b/drivers/lcd/hd44780.h
@@ -0,0 +1,220 @@
+/*
+Copyright 2022
+
+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 .
+*/
+
+#pragma once
+
+#include
+#include
+
+/**
+ * \defgroup hd44780
+ *
+ * HD44780 Character LCD Driver
+ * \{
+ */
+
+/*
+ * HD44780 instructions
+ * https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
+ * Table 6 (p24)
+ */
+// Clear display
+#define HD44780_CMD_CLEAR_DISPLAY 0x01
+// Return home
+#define HD44780_CMD_RETURN_HOME 0x02
+// Entry mode set
+#define HD44780_CMD_ENTRY_MODE 0x04
+#define HD44780_ENTRY_MODE_INC 0x02 // I/D
+#define HD44780_ENTRY_MODE_SHIFT 0x01 // S
+// Display on/off control
+#define HD44780_CMD_DISPLAY 0x08
+#define HD44780_DISPLAY_ON 0x04 // D
+#define HD44780_DISPLAY_CURSOR 0x02 // C
+#define HD44780_DISPLAY_BLINK 0x01 // B
+// Cursor or display shift
+#define HD44780_CMD_MOVE 0x10
+#define HD44780_MOVE_DISPLAY 0x08 // S/C
+#define HD44780_MOVE_RIGHT 0x04 // R/L
+// Function set
+#define HD44780_CMD_FUNCTION 0x20
+#define HD44780_FUNCTION_8_BIT 0x10 // DL
+#define HD44780_FUNCTION_2_LINES 0x08 // N
+#define HD44780_FUNCTION_5X10_DOTS 0x04 // F
+// Set CGRAM address
+#define HD44780_CMD_SET_CGRAM_ADDRESS 0x40
+// Set DDRAM address
+#define HD44780_CMD_SET_DDRAM_ADDRESS 0x80
+
+// Bitmask for busy flag when reading
+#define HD44780_BUSY_FLAG 0x80
+
+/**
+ * \brief Write a byte to the display.
+ *
+ * \param data The byte to send to the display.
+ * \param isData Whether the byte is an instruction or character data.
+ */
+void hd44780_write(uint8_t data, bool isData);
+
+/**
+ * \brief Read a byte from the display.
+ *
+ * \param isData Whether to read the current cursor position, or the character at the cursor.
+ *
+ * \return If `isData` is `true`, the returned byte will be the character at the current DDRAM address. Otherwise, it will be the current DDRAM address and the busy flag.
+ */
+uint8_t hd44780_read(bool isData);
+
+/**
+ * \brief Indicates whether the display is currently processing, and cannot accept instructions.
+ *
+ * \return `true` if the display is busy.
+ */
+bool hd44780_busy(void);
+
+/**
+ * \brief Send a command to the display. Refer to the datasheet for the valid commands.
+ *
+ * This function waits for the display to clear the busy flag before sending the command.
+ *
+ * \param command The command to send.
+ */
+void hd44780_command(uint8_t command);
+
+/**
+ * \brief Send a byte of data to the display.
+ *
+ * This function waits for the display to clear the busy flag before sending the data.
+ *
+ * \param data The byte of data to send.
+ */
+void hd44780_data(uint8_t data);
+
+/**
+ * \brief Clear the display.
+ *
+ * This function is called on init.
+ */
+void hd44780_clear(void);
+
+/**
+ * \brief Move the cursor to the home position.
+ *
+ * This function is called on init.
+ */
+void hd44780_home(void);
+
+/**
+ * \brief Turn the display on, and/or set the cursor position.
+ *
+ * This function is called on init.
+ *
+ * \param cursor Whether to show the cursor.
+ * \param blink Whether to blink the cursor, if shown.
+ */
+void hd44780_on(bool cursor, bool blink);
+
+/**
+ * \brief Turn the display off.
+ */
+void hd44780_off(void);
+
+/**
+ * \brief Set the CGRAM address.
+ *
+ * This function is used when defining custom characters.
+ *
+ * \param address The CGRAM address to move to, from `0x00` to `0x3F`.
+ */
+void hd44780_set_cgram_address(uint8_t address);
+
+/**
+ * \brief Set the DDRAM address.
+ *
+ * This function is used when printing characters to the display, and setting the cursor.
+ *
+ * \param address The DDRAM address to move to, from `0x00` to `0x7F`.
+ */
+void hd44780_set_ddram_address(uint8_t address);
+
+/**
+ * \brief Initialize the display.
+ *
+ * This function should be called only once, before any of the other functions can be called.
+ *
+ * \param cursor Whether to show the cursor.
+ * \param blink Whether to blink the cursor, if shown.
+ */
+void hd44780_init(bool cursor, bool blink);
+
+/**
+ * \brief Move the cursor to the specified position on the display.
+ *
+ * \param col The column number to move to, from 0 to 15 on 16x2 displays.
+ * \param line The line number to move to, either 0 or 1 on 16x2 displays.
+ */
+void hd44780_set_cursor(uint8_t col, uint8_t line);
+
+/**
+ * \brief Define a custom character.
+ *
+ * \param index The index of the custom character to define, from 0 to 7.
+ * \param data An array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
+ */
+void hd44780_define_char(uint8_t index, uint8_t *data);
+
+/**
+ * \brief Print a character to the display. The newline character will move the cursor to the start of the next line.
+ *
+ * The exact character shown may depend on the ROM code of your particular display - refer to the datasheet for the full character set.
+ *
+ * \param c The character to print.
+ */
+void hd44780_putc(char c);
+
+/**
+ * \brief Print a string of characters to the display.
+ *
+ * \param s The string to print.
+ */
+void hd44780_puts(const char *s);
+
+#if defined(__AVR__) || defined(__DOXYGEN__)
+/**
+ * \brief Define a custom character from PROGMEM.
+ *
+ * On ARM devices, this function is simply an alias of hd44780_define_char().
+ *
+ * \param index The index of the custom character to define, from 0 to 7.
+ * \param data A PROGMEM array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
+ */
+void hd44780_define_char_P(uint8_t index, const uint8_t *data);
+
+/**
+ * \brief Print a string of characters from PROGMEM to the display.
+ *
+ * On ARM devices, this function is simply an alias of hd44780_puts().
+ *
+ * \param s The PROGMEM string to print.
+ */
+void hd44780_puts_P(const char *s);
+#else
+# define hd44780_define_char_P(index, data) hd44780_define_char(index, data)
+# define hd44780_puts_P(s) hd44780_puts(s)
+#endif
+
+/** \} */
diff --git a/platforms/avr/drivers/hd44780.c b/platforms/avr/drivers/hd44780.c
deleted file mode 100644
index f15d7d0da832..000000000000
--- a/platforms/avr/drivers/hd44780.c
+++ /dev/null
@@ -1,542 +0,0 @@
-/****************************************************************************
- Title: HD44780U LCD library
- Author: Peter Fleury http://tinyurl.com/peterfleury
- License: GNU General Public License Version 3
- File: $Id: lcd.c,v 1.15.2.2 2015/01/17 12:16:05 peter Exp $
- Software: AVR-GCC 3.3
- Target: any AVR device, memory mapped mode only for AT90S4414/8515/Mega
-
- DESCRIPTION
- Basic routines for interfacing a HD44780U-based text lcd display
-
- Originally based on Volker Oth's lcd library,
- changed lcd_init(), added additional constants for lcd_command(),
- added 4-bit I/O mode, improved and optimized code.
-
- Library can be operated in memory mapped mode (LCD_IO_MODE=0) or in
- 4-bit IO port mode (LCD_IO_MODE=1). 8-bit IO port mode not supported.
-
- Memory mapped mode compatible with Kanda STK200, but supports also
- generation of R/W signal through A8 address line.
-
- USAGE
- See the C include lcd.h file for a description of each function
-
-*****************************************************************************/
-#include
-#include
-#include
-#include
-#include "hd44780.h"
-
-/*
-** constants/macros
-*/
-#define DDR(x) (*(&x - 1)) /* address of data direction register of port x */
-#if defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
-/* on ATmega64/128 PINF is on port 0x00 and not 0x60 */
-# define PIN(x) (&PORTF == &(x) ? _SFR_IO8(0x00) : (*(&x - 2)))
-#else
-# define PIN(x) (*(&x - 2)) /* address of input register of port x */
-#endif
-
-#if LCD_IO_MODE
-# define lcd_e_delay() _delay_us(LCD_DELAY_ENABLE_PULSE)
-# define lcd_e_high() LCD_E_PORT |= _BV(LCD_E_PIN);
-# define lcd_e_low() LCD_E_PORT &= ~_BV(LCD_E_PIN);
-# define lcd_e_toggle() toggle_e()
-# define lcd_rw_high() LCD_RW_PORT |= _BV(LCD_RW_PIN)
-# define lcd_rw_low() LCD_RW_PORT &= ~_BV(LCD_RW_PIN)
-# define lcd_rs_high() LCD_RS_PORT |= _BV(LCD_RS_PIN)
-# define lcd_rs_low() LCD_RS_PORT &= ~_BV(LCD_RS_PIN)
-#endif
-
-#if LCD_IO_MODE
-# if LCD_LINES == 1
-# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_1LINE
-# else
-# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_2LINES
-# endif
-#else
-# if LCD_LINES == 1
-# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_8BIT_1LINE
-# else
-# define LCD_FUNCTION_DEFAULT LCD_FUNCTION_8BIT_2LINES
-# endif
-#endif
-
-#if LCD_CONTROLLER_KS0073
-# if LCD_LINES == 4
-
-# define KS0073_EXTENDED_FUNCTION_REGISTER_ON 0x2C /* |0|010|1100 4-bit mode, extension-bit RE = 1 */
-# define KS0073_EXTENDED_FUNCTION_REGISTER_OFF 0x28 /* |0|010|1000 4-bit mode, extension-bit RE = 0 */
-# define KS0073_4LINES_MODE 0x09 /* |0|000|1001 4 lines mode */
-
-# endif
-#endif
-
-/*
-** function prototypes
-*/
-#if LCD_IO_MODE
-static void toggle_e(void);
-#endif
-
-/*
-** local functions
-*/
-
-/*************************************************************************
-delay for a minimum of microseconds
-the number of loops is calculated at compile-time from MCU clock frequency
-*************************************************************************/
-#define delay(us) _delay_us(us)
-
-#if LCD_IO_MODE
-/* toggle Enable Pin to initiate write */
-static void toggle_e(void) {
- lcd_e_high();
- lcd_e_delay();
- lcd_e_low();
-}
-#endif
-
-/*************************************************************************
-Low-level function to write byte to LCD controller
-Input: data byte to write to LCD
- rs 1: write data
- 0: write instruction
-Returns: none
-*************************************************************************/
-#if LCD_IO_MODE
-static void lcd_write(uint8_t data, uint8_t rs) {
- unsigned char dataBits;
-
- if (rs) { /* write data (RS=1, RW=0) */
- lcd_rs_high();
- } else { /* write instruction (RS=0, RW=0) */
- lcd_rs_low();
- }
- lcd_rw_low(); /* RW=0 write mode */
-
- if ((&LCD_DATA0_PORT == &LCD_DATA1_PORT) && (&LCD_DATA1_PORT == &LCD_DATA2_PORT) && (&LCD_DATA2_PORT == &LCD_DATA3_PORT) && (LCD_DATA0_PIN == 0) && (LCD_DATA1_PIN == 1) && (LCD_DATA2_PIN == 2) && (LCD_DATA3_PIN == 3)) {
- /* configure data pins as output */
- DDR(LCD_DATA0_PORT) |= 0x0F;
-
- /* output high nibble first */
- dataBits = LCD_DATA0_PORT & 0xF0;
- LCD_DATA0_PORT = dataBits | ((data >> 4) & 0x0F);
- lcd_e_toggle();
-
- /* output low nibble */
- LCD_DATA0_PORT = dataBits | (data & 0x0F);
- lcd_e_toggle();
-
- /* all data pins high (inactive) */
- LCD_DATA0_PORT = dataBits | 0x0F;
- } else {
- /* configure data pins as output */
- DDR(LCD_DATA0_PORT) |= _BV(LCD_DATA0_PIN);
- DDR(LCD_DATA1_PORT) |= _BV(LCD_DATA1_PIN);
- DDR(LCD_DATA2_PORT) |= _BV(LCD_DATA2_PIN);
- DDR(LCD_DATA3_PORT) |= _BV(LCD_DATA3_PIN);
-
- /* output high nibble first */
- LCD_DATA3_PORT &= ~_BV(LCD_DATA3_PIN);
- LCD_DATA2_PORT &= ~_BV(LCD_DATA2_PIN);
- LCD_DATA1_PORT &= ~_BV(LCD_DATA1_PIN);
- LCD_DATA0_PORT &= ~_BV(LCD_DATA0_PIN);
- if (data & 0x80) LCD_DATA3_PORT |= _BV(LCD_DATA3_PIN);
- if (data & 0x40) LCD_DATA2_PORT |= _BV(LCD_DATA2_PIN);
- if (data & 0x20) LCD_DATA1_PORT |= _BV(LCD_DATA1_PIN);
- if (data & 0x10) LCD_DATA0_PORT |= _BV(LCD_DATA0_PIN);
- lcd_e_toggle();
-
- /* output low nibble */
- LCD_DATA3_PORT &= ~_BV(LCD_DATA3_PIN);
- LCD_DATA2_PORT &= ~_BV(LCD_DATA2_PIN);
- LCD_DATA1_PORT &= ~_BV(LCD_DATA1_PIN);
- LCD_DATA0_PORT &= ~_BV(LCD_DATA0_PIN);
- if (data & 0x08) LCD_DATA3_PORT |= _BV(LCD_DATA3_PIN);
- if (data & 0x04) LCD_DATA2_PORT |= _BV(LCD_DATA2_PIN);
- if (data & 0x02) LCD_DATA1_PORT |= _BV(LCD_DATA1_PIN);
- if (data & 0x01) LCD_DATA0_PORT |= _BV(LCD_DATA0_PIN);
- lcd_e_toggle();
-
- /* all data pins high (inactive) */
- LCD_DATA0_PORT |= _BV(LCD_DATA0_PIN);
- LCD_DATA1_PORT |= _BV(LCD_DATA1_PIN);
- LCD_DATA2_PORT |= _BV(LCD_DATA2_PIN);
- LCD_DATA3_PORT |= _BV(LCD_DATA3_PIN);
- }
-}
-#else
-# define lcd_write(d, rs) \
- if (rs) \
- *(volatile uint8_t *)(LCD_IO_DATA) = d; \
- else \
- *(volatile uint8_t *)(LCD_IO_FUNCTION) = d;
-/* rs==0 -> write instruction to LCD_IO_FUNCTION */
-/* rs==1 -> write data to LCD_IO_DATA */
-#endif
-
-/*************************************************************************
-Low-level function to read byte from LCD controller
-Input: rs 1: read data
- 0: read busy flag / address counter
-Returns: byte read from LCD controller
-*************************************************************************/
-#if LCD_IO_MODE
-static uint8_t lcd_read(uint8_t rs) {
- uint8_t data;
-
- if (rs)
- lcd_rs_high(); /* RS=1: read data */
- else
- lcd_rs_low(); /* RS=0: read busy flag */
- lcd_rw_high(); /* RW=1 read mode */
-
- if ((&LCD_DATA0_PORT == &LCD_DATA1_PORT) && (&LCD_DATA1_PORT == &LCD_DATA2_PORT) && (&LCD_DATA2_PORT == &LCD_DATA3_PORT) && (LCD_DATA0_PIN == 0) && (LCD_DATA1_PIN == 1) && (LCD_DATA2_PIN == 2) && (LCD_DATA3_PIN == 3)) {
- DDR(LCD_DATA0_PORT) &= 0xF0; /* configure data pins as input */
-
- lcd_e_high();
- lcd_e_delay();
- data = PIN(LCD_DATA0_PORT) << 4; /* read high nibble first */
- lcd_e_low();
-
- lcd_e_delay(); /* Enable 500ns low */
-
- lcd_e_high();
- lcd_e_delay();
- data |= PIN(LCD_DATA0_PORT) & 0x0F; /* read low nibble */
- lcd_e_low();
- } else {
- /* configure data pins as input */
- DDR(LCD_DATA0_PORT) &= ~_BV(LCD_DATA0_PIN);
- DDR(LCD_DATA1_PORT) &= ~_BV(LCD_DATA1_PIN);
- DDR(LCD_DATA2_PORT) &= ~_BV(LCD_DATA2_PIN);
- DDR(LCD_DATA3_PORT) &= ~_BV(LCD_DATA3_PIN);
-
- /* read high nibble first */
- lcd_e_high();
- lcd_e_delay();
- data = 0;
- if (PIN(LCD_DATA0_PORT) & _BV(LCD_DATA0_PIN)) data |= 0x10;
- if (PIN(LCD_DATA1_PORT) & _BV(LCD_DATA1_PIN)) data |= 0x20;
- if (PIN(LCD_DATA2_PORT) & _BV(LCD_DATA2_PIN)) data |= 0x40;
- if (PIN(LCD_DATA3_PORT) & _BV(LCD_DATA3_PIN)) data |= 0x80;
- lcd_e_low();
-
- lcd_e_delay(); /* Enable 500ns low */
-
- /* read low nibble */
- lcd_e_high();
- lcd_e_delay();
- if (PIN(LCD_DATA0_PORT) & _BV(LCD_DATA0_PIN)) data |= 0x01;
- if (PIN(LCD_DATA1_PORT) & _BV(LCD_DATA1_PIN)) data |= 0x02;
- if (PIN(LCD_DATA2_PORT) & _BV(LCD_DATA2_PIN)) data |= 0x04;
- if (PIN(LCD_DATA3_PORT) & _BV(LCD_DATA3_PIN)) data |= 0x08;
- lcd_e_low();
- }
- return data;
-}
-#else
-# define lcd_read(rs) (rs) ? *(volatile uint8_t *)(LCD_IO_DATA + LCD_IO_READ) : *(volatile uint8_t *)(LCD_IO_FUNCTION + LCD_IO_READ)
-/* rs==0 -> read instruction from LCD_IO_FUNCTION */
-/* rs==1 -> read data from LCD_IO_DATA */
-#endif
-
-/*************************************************************************
-loops while lcd is busy, returns address counter
-*************************************************************************/
-static uint8_t lcd_waitbusy(void)
-
-{
- register uint8_t c;
-
- /* wait until busy flag is cleared */
- while ((c = lcd_read(0)) & (1 << LCD_BUSY)) {
- }
-
- /* the address counter is updated 4us after the busy flag is cleared */
- delay(LCD_DELAY_BUSY_FLAG);
-
- /* now read the address counter */
- return (lcd_read(0)); // return address counter
-
-} /* lcd_waitbusy */
-
-/*************************************************************************
-Move cursor to the start of next line or to the first line if the cursor
-is already on the last line.
-*************************************************************************/
-static inline void lcd_newline(uint8_t pos) {
- register uint8_t addressCounter;
-
-#if LCD_LINES == 1
- addressCounter = 0;
-#endif
-#if LCD_LINES == 2
- if (pos < (LCD_START_LINE2))
- addressCounter = LCD_START_LINE2;
- else
- addressCounter = LCD_START_LINE1;
-#endif
-#if LCD_LINES == 4
-# if KS0073_4LINES_MODE
- if (pos < LCD_START_LINE2)
- addressCounter = LCD_START_LINE2;
- else if ((pos >= LCD_START_LINE2) && (pos < LCD_START_LINE3))
- addressCounter = LCD_START_LINE3;
- else if ((pos >= LCD_START_LINE3) && (pos < LCD_START_LINE4))
- addressCounter = LCD_START_LINE4;
- else
- addressCounter = LCD_START_LINE1;
-# else
- if (pos < LCD_START_LINE3)
- addressCounter = LCD_START_LINE2;
- else if ((pos >= LCD_START_LINE2) && (pos < LCD_START_LINE4))
- addressCounter = LCD_START_LINE3;
- else if ((pos >= LCD_START_LINE3) && (pos < LCD_START_LINE2))
- addressCounter = LCD_START_LINE4;
- else
- addressCounter = LCD_START_LINE1;
-# endif
-#endif
- lcd_command((1 << LCD_DDRAM) + addressCounter);
-
-} /* lcd_newline */
-
-/*
-** PUBLIC FUNCTIONS
-*/
-
-/*************************************************************************
-Send LCD controller instruction command
-Input: instruction to send to LCD controller, see HD44780 data sheet
-Returns: none
-*************************************************************************/
-void lcd_command(uint8_t cmd) {
- lcd_waitbusy();
- lcd_write(cmd, 0);
-}
-
-/*************************************************************************
-Send data byte to LCD controller
-Input: data to send to LCD controller, see HD44780 data sheet
-Returns: none
-*************************************************************************/
-void lcd_data(uint8_t data) {
- lcd_waitbusy();
- lcd_write(data, 1);
-}
-
-/*************************************************************************
-Set cursor to specified position
-Input: x horizontal position (0: left most position)
- y vertical position (0: first line)
-Returns: none
-*************************************************************************/
-void lcd_gotoxy(uint8_t x, uint8_t y) {
-#if LCD_LINES == 1
- lcd_command((1 << LCD_DDRAM) + LCD_START_LINE1 + x);
-#endif
-#if LCD_LINES == 2
- if (y == 0)
- lcd_command((1 << LCD_DDRAM) + LCD_START_LINE1 + x);
- else
- lcd_command((1 << LCD_DDRAM) + LCD_START_LINE2 + x);
-#endif
-#if LCD_LINES == 4
- if (y == 0)
- lcd_command((1 << LCD_DDRAM) + LCD_START_LINE1 + x);
- else if (y == 1)
- lcd_command((1 << LCD_DDRAM) + LCD_START_LINE2 + x);
- else if (y == 2)
- lcd_command((1 << LCD_DDRAM) + LCD_START_LINE3 + x);
- else /* y==3 */
- lcd_command((1 << LCD_DDRAM) + LCD_START_LINE4 + x);
-#endif
-
-} /* lcd_gotoxy */
-
-/*************************************************************************
-*************************************************************************/
-int lcd_getxy(void) {
- return lcd_waitbusy();
-}
-
-/*************************************************************************
-Clear display and set cursor to home position
-*************************************************************************/
-void lcd_clrscr(void) {
- lcd_command(1 << LCD_CLR);
-}
-
-/*************************************************************************
-Set cursor to home position
-*************************************************************************/
-void lcd_home(void) {
- lcd_command(1 << LCD_HOME);
-}
-
-/*************************************************************************
-Display character at current cursor position
-Input: character to be displayed
-Returns: none
-*************************************************************************/
-void lcd_putc(char c) {
- uint8_t pos;
-
- pos = lcd_waitbusy(); // read busy-flag and address counter
- if (c == '\n') {
- lcd_newline(pos);
- } else {
-#if LCD_WRAP_LINES == 1
-# if LCD_LINES == 1
- if (pos == LCD_START_LINE1 + LCD_DISP_LENGTH) {
- lcd_write((1 << LCD_DDRAM) + LCD_START_LINE1, 0);
- }
-# elif LCD_LINES == 2
- if (pos == LCD_START_LINE1 + LCD_DISP_LENGTH) {
- lcd_write((1 << LCD_DDRAM) + LCD_START_LINE2, 0);
- } else if (pos == LCD_START_LINE2 + LCD_DISP_LENGTH) {
- lcd_write((1 << LCD_DDRAM) + LCD_START_LINE1, 0);
- }
-# elif LCD_LINES == 4
- if (pos == LCD_START_LINE1 + LCD_DISP_LENGTH) {
- lcd_write((1 << LCD_DDRAM) + LCD_START_LINE2, 0);
- } else if (pos == LCD_START_LINE2 + LCD_DISP_LENGTH) {
- lcd_write((1 << LCD_DDRAM) + LCD_START_LINE3, 0);
- } else if (pos == LCD_START_LINE3 + LCD_DISP_LENGTH) {
- lcd_write((1 << LCD_DDRAM) + LCD_START_LINE4, 0);
- } else if (pos == LCD_START_LINE4 + LCD_DISP_LENGTH) {
- lcd_write((1 << LCD_DDRAM) + LCD_START_LINE1, 0);
- }
-# endif
- lcd_waitbusy();
-#endif
- lcd_write(c, 1);
- }
-
-} /* lcd_putc */
-
-/*************************************************************************
-Display string without auto linefeed
-Input: string to be displayed
-Returns: none
-*************************************************************************/
-void lcd_puts(const char *s)
-/* print string on lcd (no auto linefeed) */
-{
- register char c;
-
- while ((c = *s++)) {
- lcd_putc(c);
- }
-
-} /* lcd_puts */
-
-/*************************************************************************
-Display string from program memory without auto linefeed
-Input: string from program memory be be displayed
-Returns: none
-*************************************************************************/
-void lcd_puts_p(const char *progmem_s)
-/* print string from program memory on lcd (no auto linefeed) */
-{
- register char c;
-
- while ((c = pgm_read_byte(progmem_s++))) {
- lcd_putc(c);
- }
-
-} /* lcd_puts_p */
-
-/*************************************************************************
-Initialize display and select type of cursor
-Input: dispAttr LCD_DISP_OFF display off
- LCD_DISP_ON display on, cursor off
- LCD_DISP_ON_CURSOR display on, cursor on
- LCD_DISP_CURSOR_BLINK display on, cursor on flashing
-Returns: none
-*************************************************************************/
-void lcd_init(uint8_t dispAttr) {
-#if LCD_IO_MODE
- /*
- * Initialize LCD to 4 bit I/O mode
- */
-
- if ((&LCD_DATA0_PORT == &LCD_DATA1_PORT) && (&LCD_DATA1_PORT == &LCD_DATA2_PORT) && (&LCD_DATA2_PORT == &LCD_DATA3_PORT) && (&LCD_RS_PORT == &LCD_DATA0_PORT) && (&LCD_RW_PORT == &LCD_DATA0_PORT) && (&LCD_E_PORT == &LCD_DATA0_PORT) && (LCD_DATA0_PIN == 0) && (LCD_DATA1_PIN == 1) && (LCD_DATA2_PIN == 2) && (LCD_DATA3_PIN == 3) && (LCD_RS_PIN == 4) && (LCD_RW_PIN == 5) && (LCD_E_PIN == 6)) {
- /* configure all port bits as output (all LCD lines on same port) */
- DDR(LCD_DATA0_PORT) |= 0x7F;
- } else if ((&LCD_DATA0_PORT == &LCD_DATA1_PORT) && (&LCD_DATA1_PORT == &LCD_DATA2_PORT) && (&LCD_DATA2_PORT == &LCD_DATA3_PORT) && (LCD_DATA0_PIN == 0) && (LCD_DATA1_PIN == 1) && (LCD_DATA2_PIN == 2) && (LCD_DATA3_PIN == 3)) {
- /* configure all port bits as output (all LCD data lines on same port, but control lines on different ports) */
- DDR(LCD_DATA0_PORT) |= 0x0F;
- DDR(LCD_RS_PORT) |= _BV(LCD_RS_PIN);
- DDR(LCD_RW_PORT) |= _BV(LCD_RW_PIN);
- DDR(LCD_E_PORT) |= _BV(LCD_E_PIN);
- } else {
- /* configure all port bits as output (LCD data and control lines on different ports */
- DDR(LCD_RS_PORT) |= _BV(LCD_RS_PIN);
- DDR(LCD_RW_PORT) |= _BV(LCD_RW_PIN);
- DDR(LCD_E_PORT) |= _BV(LCD_E_PIN);
- DDR(LCD_DATA0_PORT) |= _BV(LCD_DATA0_PIN);
- DDR(LCD_DATA1_PORT) |= _BV(LCD_DATA1_PIN);
- DDR(LCD_DATA2_PORT) |= _BV(LCD_DATA2_PIN);
- DDR(LCD_DATA3_PORT) |= _BV(LCD_DATA3_PIN);
- }
- delay(LCD_DELAY_BOOTUP); /* wait 16ms or more after power-on */
-
- /* initial write to lcd is 8bit */
- LCD_DATA1_PORT |= _BV(LCD_DATA1_PIN); // LCD_FUNCTION>>4;
- LCD_DATA0_PORT |= _BV(LCD_DATA0_PIN); // LCD_FUNCTION_8BIT>>4;
- lcd_e_toggle();
- delay(LCD_DELAY_INIT); /* delay, busy flag can't be checked here */
-
- /* repeat last command */
- lcd_e_toggle();
- delay(LCD_DELAY_INIT_REP); /* delay, busy flag can't be checked here */
-
- /* repeat last command a third time */
- lcd_e_toggle();
- delay(LCD_DELAY_INIT_REP); /* delay, busy flag can't be checked here */
-
- /* now configure for 4bit mode */
- LCD_DATA0_PORT &= ~_BV(LCD_DATA0_PIN); // LCD_FUNCTION_4BIT_1LINE>>4
- lcd_e_toggle();
- delay(LCD_DELAY_INIT_4BIT); /* some displays need this additional delay */
-
- /* from now the LCD only accepts 4 bit I/O, we can use lcd_command() */
-#else
- /*
- * Initialize LCD to 8 bit memory mapped mode
- */
-
- /* enable external SRAM (memory mapped lcd) and one wait state */
- MCUCR = _BV(SRE) | _BV(SRW);
-
- /* reset LCD */
- delay(LCD_DELAY_BOOTUP); /* wait 16ms after power-on */
- lcd_write(LCD_FUNCTION_8BIT_1LINE, 0); /* function set: 8bit interface */
- delay(LCD_DELAY_INIT); /* wait 5ms */
- lcd_write(LCD_FUNCTION_8BIT_1LINE, 0); /* function set: 8bit interface */
- delay(LCD_DELAY_INIT_REP); /* wait 64us */
- lcd_write(LCD_FUNCTION_8BIT_1LINE, 0); /* function set: 8bit interface */
- delay(LCD_DELAY_INIT_REP); /* wait 64us */
-#endif
-
-#if KS0073_4LINES_MODE
- /* Display with KS0073 controller requires special commands for enabling 4 line mode */
- lcd_command(KS0073_EXTENDED_FUNCTION_REGISTER_ON);
- lcd_command(KS0073_4LINES_MODE);
- lcd_command(KS0073_EXTENDED_FUNCTION_REGISTER_OFF);
-#else
- lcd_command(LCD_FUNCTION_DEFAULT); /* function set: display lines */
-#endif
- lcd_command(LCD_DISP_OFF); /* display off */
- lcd_clrscr(); /* display clear */
- lcd_command(LCD_MODE_DEFAULT); /* set entry mode */
- lcd_command(dispAttr); /* display/cursor control */
-
-} /* lcd_init */
diff --git a/platforms/avr/drivers/hd44780.h b/platforms/avr/drivers/hd44780.h
deleted file mode 100644
index 08e60f8a44e2..000000000000
--- a/platforms/avr/drivers/hd44780.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/*************************************************************************
- Title : C include file for the HD44780U LCD library (lcd.c)
- Author: Peter Fleury http://tinyurl.com/peterfleury
- License: GNU General Public License Version 3
- File: $Id: lcd.h,v 1.14.2.4 2015/01/20 17:16:07 peter Exp $
- Software: AVR-GCC 4.x
- Hardware: any AVR device, memory mapped mode only for AVR with
- memory mapped interface (AT90S8515/ATmega8515/ATmega128)
-***************************************************************************/
-
-/**
- @mainpage
- Collection of libraries for AVR-GCC
- @author Peter Fleury pfleury@gmx.ch http://tinyurl.com/peterfleury
- @copyright (C) 2015 Peter Fleury, GNU General Public License Version 3
-
- @file
- @defgroup pfleury_lcd LCD library
- @code #include @endcode
-
- @brief Basic routines for interfacing a HD44780U-based character LCD display
-
- LCD character displays can be found in many devices, like espresso machines, laser printers.
- The Hitachi HD44780 controller and its compatible controllers like Samsung KS0066U have become an industry standard for these types of displays.
-
- This library allows easy interfacing with a HD44780 compatible display and can be
- operated in memory mapped mode (LCD_IO_MODE defined as 0 in the include file lcd.h.) or in
- 4-bit IO port mode (LCD_IO_MODE defined as 1). 8-bit IO port mode is not supported.
-
- Memory mapped mode is compatible with old Kanda STK200 starter kit, but also supports
- generation of R/W signal through A8 address line.
-
- @see The chapter Interfacing a HD44780 Based LCD to an AVR
- on my home page, which shows example circuits how to connect an LCD to an AVR controller.
-
- @author Peter Fleury pfleury@gmx.ch http://tinyurl.com/peterfleury
-
- @version 2.0
-
- @copyright (C) 2015 Peter Fleury, GNU General Public License Version 3
-
-*/
-
-#pragma once
-
-#include
-#include
-
-#if (__GNUC__ * 100 + __GNUC_MINOR__) < 405
-# error "This library requires AVR-GCC 4.5 or later, update to newer AVR-GCC compiler !"
-#endif
-
-/**@{*/
-
-/*
- * LCD and target specific definitions below can be defined in a separate include file with name lcd_definitions.h instead modifying this file
- * by adding -D_LCD_DEFINITIONS_FILE to the CDEFS section in the Makefile
- * All definitions added to the file lcd_definitions.h will override the default definitions from lcd.h
- */
-#ifdef _LCD_DEFINITIONS_FILE
-# include "lcd_definitions.h"
-#endif
-
-/**
- * @name Definition for LCD controller type
- * Use 0 for HD44780 controller, change to 1 for displays with KS0073 controller.
- */
-#ifndef LCD_CONTROLLER_KS0073
-# define LCD_CONTROLLER_KS0073 0 /**< Use 0 for HD44780 controller, 1 for KS0073 controller */
-#endif
-
-/**
- * @name Definitions for Display Size
- * Change these definitions to adapt setting to your display
- *
- * These definitions can be defined in a separate include file \b lcd_definitions.h instead modifying this file by
- * adding -D_LCD_DEFINITIONS_FILE to the CDEFS section in the Makefile.
- * All definitions added to the file lcd_definitions.h will override the default definitions from lcd.h
- *
- */
-#ifndef LCD_LINES
-# define LCD_LINES 2 /**< number of visible lines of the display */
-#endif
-#ifndef LCD_DISP_LENGTH
-# define LCD_DISP_LENGTH 16 /**< visibles characters per line of the display */
-#endif
-#ifndef LCD_LINE_LENGTH
-# define LCD_LINE_LENGTH 0x40 /**< internal line length of the display */
-#endif
-#ifndef LCD_START_LINE1
-# define LCD_START_LINE1 0x00 /**< DDRAM address of first char of line 1 */
-#endif
-#ifndef LCD_START_LINE2
-# define LCD_START_LINE2 0x40 /**< DDRAM address of first char of line 2 */
-#endif
-#ifndef LCD_START_LINE3
-# define LCD_START_LINE3 0x14 /**< DDRAM address of first char of line 3 */
-#endif
-#ifndef LCD_START_LINE4
-# define LCD_START_LINE4 0x54 /**< DDRAM address of first char of line 4 */
-#endif
-#ifndef LCD_WRAP_LINES
-# define LCD_WRAP_LINES 0 /**< 0: no wrap, 1: wrap at end of visibile line */
-#endif
-
-/**
- * @name Definitions for 4-bit IO mode
- *
- * The four LCD data lines and the three control lines RS, RW, E can be on the
- * same port or on different ports.
- * Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on
- * different ports.
- *
- * Normally the four data lines should be mapped to bit 0..3 on one port, but it
- * is possible to connect these data lines in different order or even on different
- * ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions.
- *
- * Adjust these definitions to your target.\n
- * These definitions can be defined in a separate include file \b lcd_definitions.h instead modifying this file by
- * adding \b -D_LCD_DEFINITIONS_FILE to the \b CDEFS section in the Makefile.
- * All definitions added to the file lcd_definitions.h will override the default definitions from lcd.h
- *
- */
-#define LCD_IO_MODE 1 /**< 0: memory mapped mode, 1: IO port mode */
-
-#if LCD_IO_MODE
-
-# ifndef LCD_PORT
-# define LCD_PORT PORTA /**< port for the LCD lines */
-# endif
-# ifndef LCD_DATA0_PORT
-# define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
-# endif
-# ifndef LCD_DATA1_PORT
-# define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
-# endif
-# ifndef LCD_DATA2_PORT
-# define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
-# endif
-# ifndef LCD_DATA3_PORT
-# define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
-# endif
-# ifndef LCD_DATA0_PIN
-# define LCD_DATA0_PIN 4 /**< pin for 4bit data bit 0 */
-# endif
-# ifndef LCD_DATA1_PIN
-# define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */
-# endif
-# ifndef LCD_DATA2_PIN
-# define LCD_DATA2_PIN 6 /**< pin for 4bit data bit 2 */
-# endif
-# ifndef LCD_DATA3_PIN
-# define LCD_DATA3_PIN 7 /**< pin for 4bit data bit 3 */
-# endif
-# ifndef LCD_RS_PORT
-# define LCD_RS_PORT LCD_PORT /**< port for RS line */
-# endif
-# ifndef LCD_RS_PIN
-# define LCD_RS_PIN 3 /**< pin for RS line */
-# endif
-# ifndef LCD_RW_PORT
-# define LCD_RW_PORT LCD_PORT /**< port for RW line */
-# endif
-# ifndef LCD_RW_PIN
-# define LCD_RW_PIN 2 /**< pin for RW line */
-# endif
-# ifndef LCD_E_PORT
-# define LCD_E_PORT LCD_PORT /**< port for Enable line */
-# endif
-# ifndef LCD_E_PIN
-# define LCD_E_PIN 1 /**< pin for Enable line */
-# endif
-
-#elif defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || defined(__AVR_ATmega64__) || defined(__AVR_ATmega8515__) || defined(__AVR_ATmega103__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega161__) || defined(__AVR_ATmega162__)
-/*
- * memory mapped mode is only supported when the device has an external data memory interface
- */
-# define LCD_IO_DATA 0xC000 /* A15=E=1, A14=RS=1 */
-# define LCD_IO_FUNCTION 0x8000 /* A15=E=1, A14=RS=0 */
-# define LCD_IO_READ 0x0100 /* A8 =R/W=1 (R/W: 1=Read, 0=Write */
-
-#else
-# error "external data memory interface not available for this device, use 4-bit IO port mode"
-
-#endif
-
-/**
- * @name Definitions of delays
- * Used to calculate delay timers.
- * Adapt the F_CPU define in the Makefile to the clock frequency in Hz of your target
- *
- * These delay times can be adjusted, if some displays require different delays.\n
- * These definitions can be defined in a separate include file \b lcd_definitions.h instead modifying this file by
- * adding \b -D_LCD_DEFINITIONS_FILE to the \b CDEFS section in the Makefile.
- * All definitions added to the file lcd_definitions.h will override the default definitions from lcd.h
- */
-#ifndef LCD_DELAY_BOOTUP
-# define LCD_DELAY_BOOTUP 16000 /**< delay in micro seconds after power-on */
-#endif
-#ifndef LCD_DELAY_INIT
-# define LCD_DELAY_INIT 5000 /**< delay in micro seconds after initialization command sent */
-#endif
-#ifndef LCD_DELAY_INIT_REP
-# define LCD_DELAY_INIT_REP 64 /**< delay in micro seconds after initialization command repeated */
-#endif
-#ifndef LCD_DELAY_INIT_4BIT
-# define LCD_DELAY_INIT_4BIT 64 /**< delay in micro seconds after setting 4-bit mode */
-#endif
-#ifndef LCD_DELAY_BUSY_FLAG
-# define LCD_DELAY_BUSY_FLAG 4 /**< time in micro seconds the address counter is updated after busy flag is cleared */
-#endif
-#ifndef LCD_DELAY_ENABLE_PULSE
-# define LCD_DELAY_ENABLE_PULSE 1 /**< enable signal pulse width in micro seconds */
-#endif
-
-/**
- * @name Definitions for LCD command instructions
- * The constants define the various LCD controller instructions which can be passed to the
- * function lcd_command(), see HD44780 data sheet for a complete description.
- */
-
-/* instruction register bit positions, see HD44780U data sheet */
-#define LCD_CLR 0 /* DB0: clear display */
-#define LCD_HOME 1 /* DB1: return to home position */
-#define LCD_ENTRY_MODE 2 /* DB2: set entry mode */
-#define LCD_ENTRY_INC 1 /* DB1: 1=increment, 0=decrement */
-#define LCD_ENTRY_SHIFT 0 /* DB2: 1=display shift on */
-#define LCD_ON 3 /* DB3: turn lcd/cursor on */
-#define LCD_ON_DISPLAY 2 /* DB2: turn display on */
-#define LCD_ON_CURSOR 1 /* DB1: turn cursor on */
-#define LCD_ON_BLINK 0 /* DB0: blinking cursor ? */
-#define LCD_MOVE 4 /* DB4: move cursor/display */
-#define LCD_MOVE_DISP 3 /* DB3: move display (0-> cursor) ? */
-#define LCD_MOVE_RIGHT 2 /* DB2: move right (0-> left) ? */
-#define LCD_FUNCTION 5 /* DB5: function set */
-#define LCD_FUNCTION_8BIT 4 /* DB4: set 8BIT mode (0->4BIT mode) */
-#define LCD_FUNCTION_2LINES 3 /* DB3: two lines (0->one line) */
-#define LCD_FUNCTION_10DOTS 2 /* DB2: 5x10 font (0->5x7 font) */
-#define LCD_CGRAM 6 /* DB6: set CG RAM address */
-#define LCD_DDRAM 7 /* DB7: set DD RAM address */
-#define LCD_BUSY 7 /* DB7: LCD is busy */
-
-/* set entry mode: display shift on/off, dec/inc cursor move direction */
-#define LCD_ENTRY_DEC 0x04 /* display shift off, dec cursor move dir */
-#define LCD_ENTRY_DEC_SHIFT 0x05 /* display shift on, dec cursor move dir */
-#define LCD_ENTRY_INC_ 0x06 /* display shift off, inc cursor move dir */
-#define LCD_ENTRY_INC_SHIFT 0x07 /* display shift on, inc cursor move dir */
-
-/* display on/off, cursor on/off, blinking char at cursor position */
-#define LCD_DISP_OFF 0x08 /* display off */
-#define LCD_DISP_ON 0x0C /* display on, cursor off */
-#define LCD_DISP_ON_BLINK 0x0D /* display on, cursor off, blink char */
-#define LCD_DISP_ON_CURSOR 0x0E /* display on, cursor on */
-#define LCD_DISP_ON_CURSOR_BLINK 0x0F /* display on, cursor on, blink char */
-
-/* move cursor/shift display */
-#define LCD_MOVE_CURSOR_LEFT 0x10 /* move cursor left (decrement) */
-#define LCD_MOVE_CURSOR_RIGHT 0x14 /* move cursor right (increment) */
-#define LCD_MOVE_DISP_LEFT 0x18 /* shift display left */
-#define LCD_MOVE_DISP_RIGHT 0x1C /* shift display right */
-
-/* function set: set interface data length and number of display lines */
-#define LCD_FUNCTION_4BIT_1LINE 0x20 /* 4-bit interface, single line, 5x7 dots */
-#define LCD_FUNCTION_4BIT_2LINES 0x28 /* 4-bit interface, dual line, 5x7 dots */
-#define LCD_FUNCTION_8BIT_1LINE 0x30 /* 8-bit interface, single line, 5x7 dots */
-#define LCD_FUNCTION_8BIT_2LINES 0x38 /* 8-bit interface, dual line, 5x7 dots */
-
-#define LCD_MODE_DEFAULT ((1 << LCD_ENTRY_MODE) | (1 << LCD_ENTRY_INC))
-
-/**
- * @name Functions
- */
-
-/**
- @brief Initialize display and select type of cursor
- @param dispAttr \b LCD_DISP_OFF display off\n
- \b LCD_DISP_ON display on, cursor off\n
- \b LCD_DISP_ON_CURSOR display on, cursor on\n
- \b LCD_DISP_ON_CURSOR_BLINK display on, cursor on flashing
- @return none
-*/
-extern void lcd_init(uint8_t dispAttr);
-
-/**
- @brief Clear display and set cursor to home position
- @return none
-*/
-extern void lcd_clrscr(void);
-
-/**
- @brief Set cursor to home position
- @return none
-*/
-extern void lcd_home(void);
-
-/**
- @brief Set cursor to specified position
-
- @param x horizontal position\n (0: left most position)
- @param y vertical position\n (0: first line)
- @return none
-*/
-extern void lcd_gotoxy(uint8_t x, uint8_t y);
-
-/**
- @brief Display character at current cursor position
- @param c character to be displayed
- @return none
-*/
-extern void lcd_putc(char c);
-
-/**
- @brief Display string without auto linefeed
- @param s string to be displayed
- @return none
-*/
-extern void lcd_puts(const char *s);
-
-/**
- @brief Display string from program memory without auto linefeed
- @param progmem_s string from program memory be be displayed
- @return none
- @see lcd_puts_P
-*/
-extern void lcd_puts_p(const char *progmem_s);
-
-/**
- @brief Send LCD controller instruction command
- @param cmd instruction to send to LCD controller, see HD44780 data sheet
- @return none
-*/
-extern void lcd_command(uint8_t cmd);
-
-/**
- @brief Send data byte to LCD controller
-
- Similar to lcd_putc(), but without interpreting LF
- @param data byte to send to LCD controller, see HD44780 data sheet
- @return none
-*/
-extern void lcd_data(uint8_t data);
-
-/**
- @brief macros for automatically storing string constant in program memory
-*/
-#define lcd_puts_P(__s) lcd_puts_p(PSTR(__s))
-
-/**@}*/
From 98e783cc3ca76b542093bab9b0939030fd3cfba7 Mon Sep 17 00:00:00 2001
From: QMK Bot
Date: Sat, 19 Mar 2022 04:52:03 -0700
Subject: [PATCH 059/221] Format code according to conventions (#16686)
---
drivers/lcd/hd44780.h | 46 +++++++++++++++++++++----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/drivers/lcd/hd44780.h b/drivers/lcd/hd44780.h
index d4b8f9ea76a1..9e4333934447 100644
--- a/drivers/lcd/hd44780.h
+++ b/drivers/lcd/hd44780.h
@@ -33,34 +33,34 @@ along with this program. If not, see .
* Table 6 (p24)
*/
// Clear display
-#define HD44780_CMD_CLEAR_DISPLAY 0x01
+#define HD44780_CMD_CLEAR_DISPLAY 0x01
// Return home
-#define HD44780_CMD_RETURN_HOME 0x02
+#define HD44780_CMD_RETURN_HOME 0x02
// Entry mode set
-#define HD44780_CMD_ENTRY_MODE 0x04
-#define HD44780_ENTRY_MODE_INC 0x02 // I/D
-#define HD44780_ENTRY_MODE_SHIFT 0x01 // S
+#define HD44780_CMD_ENTRY_MODE 0x04
+#define HD44780_ENTRY_MODE_INC 0x02 // I/D
+#define HD44780_ENTRY_MODE_SHIFT 0x01 // S
// Display on/off control
-#define HD44780_CMD_DISPLAY 0x08
-#define HD44780_DISPLAY_ON 0x04 // D
-#define HD44780_DISPLAY_CURSOR 0x02 // C
-#define HD44780_DISPLAY_BLINK 0x01 // B
+#define HD44780_CMD_DISPLAY 0x08
+#define HD44780_DISPLAY_ON 0x04 // D
+#define HD44780_DISPLAY_CURSOR 0x02 // C
+#define HD44780_DISPLAY_BLINK 0x01 // B
// Cursor or display shift
-#define HD44780_CMD_MOVE 0x10
-#define HD44780_MOVE_DISPLAY 0x08 // S/C
-#define HD44780_MOVE_RIGHT 0x04 // R/L
+#define HD44780_CMD_MOVE 0x10
+#define HD44780_MOVE_DISPLAY 0x08 // S/C
+#define HD44780_MOVE_RIGHT 0x04 // R/L
// Function set
-#define HD44780_CMD_FUNCTION 0x20
-#define HD44780_FUNCTION_8_BIT 0x10 // DL
-#define HD44780_FUNCTION_2_LINES 0x08 // N
-#define HD44780_FUNCTION_5X10_DOTS 0x04 // F
+#define HD44780_CMD_FUNCTION 0x20
+#define HD44780_FUNCTION_8_BIT 0x10 // DL
+#define HD44780_FUNCTION_2_LINES 0x08 // N
+#define HD44780_FUNCTION_5X10_DOTS 0x04 // F
// Set CGRAM address
-#define HD44780_CMD_SET_CGRAM_ADDRESS 0x40
+#define HD44780_CMD_SET_CGRAM_ADDRESS 0x40
// Set DDRAM address
-#define HD44780_CMD_SET_DDRAM_ADDRESS 0x80
+#define HD44780_CMD_SET_DDRAM_ADDRESS 0x80
// Bitmask for busy flag when reading
-#define HD44780_BUSY_FLAG 0x80
+#define HD44780_BUSY_FLAG 0x80
/**
* \brief Write a byte to the display.
@@ -72,7 +72,7 @@ void hd44780_write(uint8_t data, bool isData);
/**
* \brief Read a byte from the display.
- *
+ *
* \param isData Whether to read the current cursor position, or the character at the cursor.
*
* \return If `isData` is `true`, the returned byte will be the character at the current DDRAM address. Otherwise, it will be the current DDRAM address and the busy flag.
@@ -90,7 +90,7 @@ bool hd44780_busy(void);
* \brief Send a command to the display. Refer to the datasheet for the valid commands.
*
* This function waits for the display to clear the busy flag before sending the command.
- *
+ *
* \param command The command to send.
*/
void hd44780_command(uint8_t command);
@@ -163,7 +163,7 @@ void hd44780_init(bool cursor, bool blink);
/**
* \brief Move the cursor to the specified position on the display.
- *
+ *
* \param col The column number to move to, from 0 to 15 on 16x2 displays.
* \param line The line number to move to, either 0 or 1 on 16x2 displays.
*/
@@ -179,7 +179,7 @@ void hd44780_define_char(uint8_t index, uint8_t *data);
/**
* \brief Print a character to the display. The newline character will move the cursor to the start of the next line.
- *
+ *
* The exact character shown may depend on the ROM code of your particular display - refer to the datasheet for the full character set.
*
* \param c The character to print.
From e354cbe7820cec45f0514de930ba60b3c19cb290 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Sat, 19 Mar 2022 22:52:40 +1100
Subject: [PATCH 060/221] `device_ver` -> `device_version` for some more boards
(#16685)
---
keyboards/dyz/dyz40/info.json | 2 +-
keyboards/dyz/dyz_tkl/info.json | 2 +-
keyboards/dyz/selka40/info.json | 2 +-
keyboards/dyz/synthesis60/info.json | 2 +-
keyboards/handwired/3dortho14u/rev1/info.json | 4 ++--
keyboards/handwired/3dortho14u/rev2/info.json | 4 ++--
keyboards/handwired/baredev/rev1/info.json | 2 +-
keyboards/handwired/hillside/0_1/info.json | 2 +-
keyboards/handwired/pytest/info.json | 2 +-
keyboards/handwired/wakizashi40/info.json | 4 ++--
keyboards/karlb/kbic65/info.json | 2 +-
keyboards/splitography/info.json | 2 +-
12 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/keyboards/dyz/dyz40/info.json b/keyboards/dyz/dyz40/info.json
index 2a30ca0bb205..db525a470793 100644
--- a/keyboards/dyz/dyz40/info.json
+++ b/keyboards/dyz/dyz40/info.json
@@ -20,7 +20,7 @@
"usb": {
"vid": "0xD772",
"pid": "0x000B",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/dyz/dyz_tkl/info.json b/keyboards/dyz/dyz_tkl/info.json
index 8cba9c24e756..07a1a7cb7b8a 100644
--- a/keyboards/dyz/dyz_tkl/info.json
+++ b/keyboards/dyz/dyz_tkl/info.json
@@ -17,7 +17,7 @@
"usb": {
"vid": "0xD772",
"pid": "0x000C",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/dyz/selka40/info.json b/keyboards/dyz/selka40/info.json
index b947bbb59a31..740eb0d5f13a 100644
--- a/keyboards/dyz/selka40/info.json
+++ b/keyboards/dyz/selka40/info.json
@@ -20,7 +20,7 @@
"usb": {
"vid": "0xD772",
"pid": "0x0012",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/dyz/synthesis60/info.json b/keyboards/dyz/synthesis60/info.json
index 381e7efb36cf..c0d9baf56048 100644
--- a/keyboards/dyz/synthesis60/info.json
+++ b/keyboards/dyz/synthesis60/info.json
@@ -35,7 +35,7 @@
"usb": {
"vid": "0xD772",
"pid": "0x0017",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/handwired/3dortho14u/rev1/info.json b/keyboards/handwired/3dortho14u/rev1/info.json
index 72ed95e5f423..bd9220281c3f 100644
--- a/keyboards/handwired/3dortho14u/rev1/info.json
+++ b/keyboards/handwired/3dortho14u/rev1/info.json
@@ -28,9 +28,9 @@
"rows": ["B0", "B1", "B2", "B3", "B7"]
},
"usb": {
- "device_ver": "0x0001",
+ "vid": "0x6662",
"pid": "0x3D14",
- "vid": "0x6662"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
diff --git a/keyboards/handwired/3dortho14u/rev2/info.json b/keyboards/handwired/3dortho14u/rev2/info.json
index 705d6b557072..7f241f35ff3c 100644
--- a/keyboards/handwired/3dortho14u/rev2/info.json
+++ b/keyboards/handwired/3dortho14u/rev2/info.json
@@ -28,9 +28,9 @@
"rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"usb": {
- "device_ver": "0x0001",
+ "vid": "0x6662",
"pid": "0x3D14",
- "vid": "0x6662"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
diff --git a/keyboards/handwired/baredev/rev1/info.json b/keyboards/handwired/baredev/rev1/info.json
index 601b5df1289a..62928175386c 100644
--- a/keyboards/handwired/baredev/rev1/info.json
+++ b/keyboards/handwired/baredev/rev1/info.json
@@ -44,7 +44,7 @@
"usb": {
"vid": "0x1209",
"pid": "0x4126",
- "device_ver": "0x0001",
+ "device_version": "0.0.1",
"polling_interval": 1,
"shared_endpoint": {
"keyboard": true
diff --git a/keyboards/handwired/hillside/0_1/info.json b/keyboards/handwired/hillside/0_1/info.json
index 8c00f70366e3..7e128d519134 100644
--- a/keyboards/handwired/hillside/0_1/info.json
+++ b/keyboards/handwired/hillside/0_1/info.json
@@ -18,7 +18,7 @@
"usb": {
"vid": "0xFEED",
"pid": "0x67C0",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
},
"features": {
diff --git a/keyboards/handwired/pytest/info.json b/keyboards/handwired/pytest/info.json
index 5c941af9bf55..331472762c20 100644
--- a/keyboards/handwired/pytest/info.json
+++ b/keyboards/handwired/pytest/info.json
@@ -5,6 +5,6 @@
"usb": {
"vid": "0xFEED",
"pid": "0x6465",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
}
}
diff --git a/keyboards/handwired/wakizashi40/info.json b/keyboards/handwired/wakizashi40/info.json
index b64ab55116e2..58eadb29e61d 100644
--- a/keyboards/handwired/wakizashi40/info.json
+++ b/keyboards/handwired/wakizashi40/info.json
@@ -24,9 +24,9 @@
"rows": ["C0", "C1", "C2", "C3"]
},
"usb": {
- "device_ver": "0x0001",
+ "vid": "0x6662",
"pid": "0x7740",
- "vid": "0x6662"
+ "device_version": "0.0.1"
},
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
diff --git a/keyboards/karlb/kbic65/info.json b/keyboards/karlb/kbic65/info.json
index 560e162a3e36..857f8d3cc551 100644
--- a/keyboards/karlb/kbic65/info.json
+++ b/keyboards/karlb/kbic65/info.json
@@ -29,7 +29,7 @@
"usb": {
"vid": "0x424B",
"pid": "0xD87A",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
diff --git a/keyboards/splitography/info.json b/keyboards/splitography/info.json
index 2d07607c2916..a7f8bb7c95f9 100644
--- a/keyboards/splitography/info.json
+++ b/keyboards/splitography/info.json
@@ -23,7 +23,7 @@
"usb": {
"vid": "0xFEED",
"pid": "0x6060",
- "device_ver": "0x0001"
+ "device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
From 3502bbbd16feff23ac020ed561ebfef95cc271e8 Mon Sep 17 00:00:00 2001
From: leviport
Date: Sat, 19 Mar 2022 10:37:35 -0600
Subject: [PATCH 061/221] Fix typo in docs/ref_functions.md (#16690)
---
docs/ref_functions.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/ref_functions.md b/docs/ref_functions.md
index 209dcef722d5..a25c326b43a9 100644
--- a/docs/ref_functions.md
+++ b/docs/ref_functions.md
@@ -1,6 +1,6 @@
# List of Useful Core Functions To Make Your Keyboard Better
-There are a lot of hidden functions in QMK that are incredible useful, or may add a bit of functionality that you've been wanting. Functions that are specific to certain features are not included here, as those will be on their respective feature page.
+There are a lot of hidden functions in QMK that are incredibly useful, or may add a bit of functionality that you've been wanting. Functions that are specific to certain features are not included here, as those will be on their respective feature page.
## (OLKB) Tri Layers :id=olkb-tri-layers
From 047ef3cd121e6bed3702eaf7ed3e96cf1e765ec5 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Sat, 19 Mar 2022 17:40:47 +0000
Subject: [PATCH 062/221] VUSB - Use correct endpoint poll for VIA (#16691)
---
tmk_core/protocol/vusb/protocol.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tmk_core/protocol/vusb/protocol.c b/tmk_core/protocol/vusb/protocol.c
index 20d053048364..ae99680ce4b6 100644
--- a/tmk_core/protocol/vusb/protocol.c
+++ b/tmk_core/protocol/vusb/protocol.c
@@ -158,7 +158,7 @@ void protocol_task(void) {
#ifdef RAW_ENABLE
usbPoll();
- if (usbConfiguration && usbInterruptIsReady3()) {
+ if (usbConfiguration && usbInterruptIsReady4()) {
raw_hid_task();
}
#endif
From 2f095b8925df98cf2c8c818c8fc44a9015efd6be Mon Sep 17 00:00:00 2001
From: Ryan
Date: Sun, 20 Mar 2022 07:58:30 +1100
Subject: [PATCH 063/221] qmk.path.FileType: fix argument handling (#16693)
* qmk.path.FileType: pass in mode as first argument
* Better solution
* Grammar...
---
lib/python/qmk/path.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py
index 9b94abbc1279..556d0eefc858 100644
--- a/lib/python/qmk/path.py
+++ b/lib/python/qmk/path.py
@@ -70,9 +70,11 @@ def normpath(path):
class FileType(argparse.FileType):
- def __init__(self, encoding='UTF-8'):
+ def __init__(self, *args, **kwargs):
# Use UTF8 by default for stdin
- return super().__init__(encoding=encoding)
+ if 'encoding' not in kwargs:
+ kwargs['encoding'] = 'UTF-8'
+ return super().__init__(*args, **kwargs)
def __call__(self, string):
"""normalize and check exists
From cfe28937d51748e180e31c7939fe9e2749524877 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Sun, 20 Mar 2022 15:19:46 +1100
Subject: [PATCH 064/221] MS Sculpt Mobile refactor (#16038)
---
.../handwired/ms_sculpt_mobile/astar/config.h | 6 +
.../handwired/ms_sculpt_mobile/astar/rules.mk | 5 +
keyboards/handwired/ms_sculpt_mobile/config.h | 17 --
.../handwired/ms_sculpt_mobile/info.json | 187 +++++++++---------
.../ms_sculpt_mobile/keymaps/default/rules.mk | 10 +-
.../handwired/ms_sculpt_mobile/readme.md | 2 -
keyboards/handwired/ms_sculpt_mobile/rules.mk | 20 +-
.../ms_sculpt_mobile/teensy2pp/config.h | 6 +
.../ms_sculpt_mobile/teensy2pp/rules.mk | 5 +
9 files changed, 124 insertions(+), 134 deletions(-)
create mode 100644 keyboards/handwired/ms_sculpt_mobile/astar/config.h
create mode 100644 keyboards/handwired/ms_sculpt_mobile/astar/rules.mk
create mode 100644 keyboards/handwired/ms_sculpt_mobile/teensy2pp/config.h
create mode 100644 keyboards/handwired/ms_sculpt_mobile/teensy2pp/rules.mk
diff --git a/keyboards/handwired/ms_sculpt_mobile/astar/config.h b/keyboards/handwired/ms_sculpt_mobile/astar/config.h
new file mode 100644
index 000000000000..c34b86acb230
--- /dev/null
+++ b/keyboards/handwired/ms_sculpt_mobile/astar/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define PRODUCT sculpt mobile astar
+
+#define MATRIX_ROW_PINS { D7, C6, D4, D0, D1, D3, D2, E2 }
+#define MATRIX_COL_PINS { B4, B5, E6, B7, B6, D6, C7, F7, F6, F4, F5, F1, F0, D5, B0, B1, B2, B3 }
diff --git a/keyboards/handwired/ms_sculpt_mobile/astar/rules.mk b/keyboards/handwired/ms_sculpt_mobile/astar/rules.mk
new file mode 100644
index 000000000000..cf663a7ed6aa
--- /dev/null
+++ b/keyboards/handwired/ms_sculpt_mobile/astar/rules.mk
@@ -0,0 +1,5 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
diff --git a/keyboards/handwired/ms_sculpt_mobile/config.h b/keyboards/handwired/ms_sculpt_mobile/config.h
index 13f5a588b6c6..df478e6d8a93 100644
--- a/keyboards/handwired/ms_sculpt_mobile/config.h
+++ b/keyboards/handwired/ms_sculpt_mobile/config.h
@@ -29,23 +29,6 @@ along with this program. If not, see .
#define MATRIX_ROWS 8
#define MATRIX_COLS 18
-#ifdef ASTAR
-#define PRODUCT sculpt mobile astar
- /*0 1 2 3 4 5 6 7 8 */
-#define MATRIX_ROW_PINS {D7, C6, D4, D0, D1, D3, D2, E2}
-/* A B C D E F G H I J K L M N O P Q R */
-#define MATRIX_COL_PINS {B4, B5, E6, B7, B6, D6, C7, F7, F6, F4,F5, F1,F0, D5, B0, B1, B2, B3}
-
-#else
-#define PRODUCT sculpt mobile teensypp
-/* 0 1 2 3 4 5 6 7 */
-#define MATRIX_ROW_PINS { F7,F6,F4,F5,F3,F2,F1,F0}
-/* A B C D E F G H I J K L M N O P Q R */
-#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, D4, D5, D6, D7, E0,E1,C1, C0, C3, C2, C5, C4,C7}
-#define UNUSED_PINS { B6,B5,B4,B3,B2,B1,B0 }
-
-#endif
-
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
diff --git a/keyboards/handwired/ms_sculpt_mobile/info.json b/keyboards/handwired/ms_sculpt_mobile/info.json
index 98137e84f89d..1c171af8f3de 100644
--- a/keyboards/handwired/ms_sculpt_mobile/info.json
+++ b/keyboards/handwired/ms_sculpt_mobile/info.json
@@ -1,94 +1,99 @@
{
- "keyboard_name": "MS Sculpt Mobile",
- "url": "",
- "maintainer": "qmk",
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"label":"Esc", "x":0, "y":0},
- {"label":"F1", "x":1, "y":0},
- {"label":"F2", "x":2, "y":0},
- {"label":"F3", "x":3, "y":0},
- {"label":"F4", "x":4, "y":0},
- {"label":"F5", "x":5, "y":0},
- {"label":"F6", "x":6, "y":0},
- {"label":"F7", "x":7, "y":0},
- {"label":"F8", "x":8, "y":0},
- {"label":"F9", "x":9, "y":0},
- {"label":"F10", "x":10, "y":0},
- {"label":"F11", "x":11, "y":0},
- {"label":"F12", "x":12, "y":0},
- {"label":"PrtSc", "x":13, "y":0},
- {"label":"Home", "x":14, "y":0},
- {"label":"End", "x":15, "y":0},
- {"label":"`", "x":0, "y":1},
- {"label":"1", "x":1, "y":1},
- {"label":"2", "x":2, "y":1},
- {"label":"3", "x":3, "y":1},
- {"label":"4", "x":4, "y":1},
- {"label":"5", "x":5, "y":1},
- {"label":"6", "x":6, "y":1},
- {"label":"7", "x":7, "y":1},
- {"label":"8", "x":8, "y":1},
- {"label":"9", "x":9, "y":1},
- {"label":"0", "x":10, "y":1},
- {"label":"-", "x":11, "y":1},
- {"label":"=", "x":12, "y":1},
- {"label":"Backspace", "x":13, "y":1, "w":2},
- {"label":"Del", "x":15, "y":1, "h":1.6},
- {"label":"Tab", "x":0, "y":2, "w":1.5},
- {"label":"Q", "x":1.5, "y":2},
- {"label":"W", "x":2.5, "y":2},
- {"label":"E", "x":3.5, "y":2},
- {"label":"R", "x":4.5, "y":2},
- {"label":"T", "x":5.5, "y":2},
- {"label":"Y", "x":6.5, "y":2},
- {"label":"U", "x":7.5, "y":2},
- {"label":"I", "x":8.5, "y":2},
- {"label":"O", "x":9.5, "y":2},
- {"label":"P", "x":10.5, "y":2},
- {"label":"[", "x":11.5, "y":2},
- {"label":"]", "x":12.5, "y":2},
- {"label":"\\", "x":13.5, "y":2, "w":1.5},
- {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
- {"label":"A", "x":1.75, "y":3},
- {"label":"S", "x":2.75, "y":3},
- {"label":"D", "x":3.75, "y":3},
- {"label":"F", "x":4.75, "y":3},
- {"label":"G", "x":5.75, "y":3},
- {"label":"H", "x":6.75, "y":3},
- {"label":"J", "x":7.75, "y":3},
- {"label":"K", "x":8.75, "y":3},
- {"label":"L", "x":9.75, "y":3},
- {"label":";", "x":10.75, "y":3},
- {"label":"'", "x":11.75, "y":3},
- {"label":"Enter", "x":12.75, "y":3, "w":2.25},
- {"label":"PgUp", "x":15, "y":2.6, "h":1.2},
- {"label":"LShift", "x":0, "y":4, "w":2.25},
- {"label":"Z", "x":2.25, "y":4},
- {"label":"X", "x":3.25, "y":4},
- {"label":"C", "x":4.25, "y":4},
- {"label":"V", "x":5.25, "y":4},
- {"label":"B", "x":6.25, "y":4},
- {"label":"N", "x":7.25, "y":4},
- {"label":"M", "x":8.25, "y":4},
- {"label":",", "x":9.25, "y":4},
- {"label":".", "x":10.25, "y":4},
- {"label":"/", "x":11.25, "y":4},
- {"label":"RShift", "x":12.25, "y":4, "w":1.75},
- {"label":"Up", "x":14, "y":4},
- {"label":"PgDn", "x":15, "y":3.8, "h":1.2},
- {"label":"LCtrl", "x":0, "y":5, "w":1.25},
- {"label":"LWin", "x":1.25, "y":5, "w":1.25},
- {"label":"LAlt", "x":2.5, "y":5, "w":1.25},
- {"label":"Space", "x":3.75, "y":5, "w":5.5},
- {"label":"RAlt", "x":9.25, "y":5, "w":1.25},
- {"label":"Fn", "x":10.5, "y":5, "w":1.25},
- {"label":"RCtrl", "x":11.75, "y":5, "w":1.25},
- {"label":"Left", "x":13, "y":5},
- {"label":"Down", "x":14, "y":5},
- {"label":"Right", "x":15, "y":5}
- ]
+ "keyboard_name": "MS Sculpt Mobile",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x": 0, "y": 0},
+ {"x": 1, "y": 0},
+ {"x": 2, "y": 0},
+ {"x": 3, "y": 0},
+ {"x": 4, "y": 0},
+ {"x": 5, "y": 0},
+ {"x": 6, "y": 0},
+ {"x": 7, "y": 0},
+ {"x": 8, "y": 0},
+ {"x": 9, "y": 0},
+ {"x": 10, "y": 0},
+ {"x": 11, "y": 0},
+ {"x": 12, "y": 0},
+ {"x": 13, "y": 0},
+ {"x": 14, "y": 0},
+ {"x": 15, "y": 0},
+
+ {"x": 0, "y": 1},
+ {"x": 1, "y": 1},
+ {"x": 2, "y": 1},
+ {"x": 3, "y": 1},
+ {"x": 4, "y": 1},
+ {"x": 5, "y": 1},
+ {"x": 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, "w": 2},
+ {"x": 15, "y": 1, "h": 1.6},
+
+ {"x": 0, "y": 2, "w": 1.5},
+ {"x": 1.5, "y": 2},
+ {"x": 2.5, "y": 2},
+ {"x": 3.5, "y": 2},
+ {"x": 4.5, "y": 2},
+ {"x": 5.5, "y": 2},
+ {"x": 6.5, "y": 2},
+ {"x": 7.5, "y": 2},
+ {"x": 8.5, "y": 2},
+ {"x": 9.5, "y": 2},
+ {"x": 10.5, "y": 2},
+ {"x": 11.5, "y": 2},
+ {"x": 12.5, "y": 2},
+ {"x": 13.5, "y": 2, "w": 1.5},
+
+ {"x": 0, "y": 3, "w": 1.75},
+ {"x": 1.75, "y": 3},
+ {"x": 2.75, "y": 3},
+ {"x": 3.75, "y": 3},
+ {"x": 4.75, "y": 3},
+ {"x": 5.75, "y": 3},
+ {"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, "w": 2.25},
+ {"x": 15, "y": 2.6, "h": 1.2},
+
+ {"x": 0, "y": 4, "w": 2.25},
+ {"x": 2.25, "y": 4},
+ {"x": 3.25, "y": 4},
+ {"x": 4.25, "y": 4},
+ {"x": 5.25, "y": 4},
+ {"x": 6.25, "y": 4},
+ {"x": 7.25, "y": 4},
+ {"x": 8.25, "y": 4},
+ {"x": 9.25, "y": 4},
+ {"x": 10.25, "y": 4},
+ {"x": 11.25, "y": 4},
+ {"x": 12.25, "y": 4, "w": 1.75},
+ {"x": 14, "y": 4},
+ {"x": 15, "y": 3.8, "h": 1.2},
+
+ {"x": 0, "y": 5, "w": 1.25},
+ {"x": 1.25, "y": 5, "w": 1.25},
+ {"x": 2.5, "y": 5, "w": 1.25},
+ {"x": 3.75, "y": 5, "w": 5.5},
+ {"x": 9.25, "y": 5, "w": 1.25},
+ {"x": 10.5, "y": 5, "w": 1.25},
+ {"x": 11.75, "y": 5, "w": 1.25},
+ {"x": 13, "y": 5},
+ {"x": 14, "y": 5},
+ {"x": 15, "y": 5}
+ ]
+ }
}
- }
}
diff --git a/keyboards/handwired/ms_sculpt_mobile/keymaps/default/rules.mk b/keyboards/handwired/ms_sculpt_mobile/keymaps/default/rules.mk
index 3224016bbe3a..a9c1087a2aa8 100644
--- a/keyboards/handwired/ms_sculpt_mobile/keymaps/default/rules.mk
+++ b/keyboards/handwired/ms_sculpt_mobile/keymaps/default/rules.mk
@@ -1,9 +1,3 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
+MOUSEKEY_ENABLE = yes
+CONSOLE_ENABLE = no
NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-AUDIO_ENABLE = no # Audio output
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
diff --git a/keyboards/handwired/ms_sculpt_mobile/readme.md b/keyboards/handwired/ms_sculpt_mobile/readme.md
index 98fd1f8d1aae..0345ded36bfd 100644
--- a/keyboards/handwired/ms_sculpt_mobile/readme.md
+++ b/keyboards/handwired/ms_sculpt_mobile/readme.md
@@ -46,8 +46,6 @@ The Astar mini has all pins exposed , so you can do 18x8
If you want a speaker, LEDs, etc., you'll need to free up a pin. I recommend joining columns
R and L to the same pin.
-Building - add ASTAR=1 to the compile line or leave out for teensy2++
-
Make example for this keyboard (after setting up your build environment):
make handwired/ms_sculpt_mobile:default
diff --git a/keyboards/handwired/ms_sculpt_mobile/rules.mk b/keyboards/handwired/ms_sculpt_mobile/rules.mk
index 6498fa6c7603..6fd84c8244b2 100644
--- a/keyboards/handwired/ms_sculpt_mobile/rules.mk
+++ b/keyboards/handwired/ms_sculpt_mobile/rules.mk
@@ -1,26 +1,14 @@
-# MCU name
-ifdef ASTAR
- MCU = atmega32u4
- CFLAGS = -D ASTAR
-else
- MCU = at90usb1286
-endif
-
-# Bootloader selection
-ifdef ASTAR
- BOOTLOADER = caterina
-else
- BOOTLOADER = atmel-dfu
-endif
-
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
+MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
+
+DEFAULT_FOLDER = handwired/ms_sculpt_mobile/teensy2pp
diff --git a/keyboards/handwired/ms_sculpt_mobile/teensy2pp/config.h b/keyboards/handwired/ms_sculpt_mobile/teensy2pp/config.h
new file mode 100644
index 000000000000..a69d3fd3b03e
--- /dev/null
+++ b/keyboards/handwired/ms_sculpt_mobile/teensy2pp/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define PRODUCT sculpt mobile teensypp
+
+#define MATRIX_ROW_PINS { F7, F6, F4, F5, F3, F2, F1, F0 }
+#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, D4, D5, D6, D7, E0, E1, C1, C0, C3, C2, C5, C4, C7 }
diff --git a/keyboards/handwired/ms_sculpt_mobile/teensy2pp/rules.mk b/keyboards/handwired/ms_sculpt_mobile/teensy2pp/rules.mk
new file mode 100644
index 000000000000..149471682dfb
--- /dev/null
+++ b/keyboards/handwired/ms_sculpt_mobile/teensy2pp/rules.mk
@@ -0,0 +1,5 @@
+# MCU name
+MCU = at90usb1286
+
+# Bootloader selection
+BOOTLOADER = halfkay
From 6125f7bf4d15b4ab9403186a5282bb75bc00bd07 Mon Sep 17 00:00:00 2001
From: Joshua Barber
Date: Sun, 20 Mar 2022 17:02:46 +0000
Subject: [PATCH 065/221] Add MutePad keyboard (Handwired) (#16590)
* Add MutePad keyboard
* Update info.json and readme
* Move mutepad to handwired folder
* Address PR comments
---
keyboards/handwired/mutepad/config.h | 90 +++++++++++++++++++
keyboards/handwired/mutepad/info.json | 15 ++++
.../mutepad/keymaps/default/keymap.c | 43 +++++++++
.../mutepad/keymaps/default/readme.md | 1 +
keyboards/handwired/mutepad/mutepad.c | 4 +
keyboards/handwired/mutepad/mutepad.h | 19 ++++
keyboards/handwired/mutepad/readme.md | 33 +++++++
keyboards/handwired/mutepad/rules.mk | 19 ++++
8 files changed, 224 insertions(+)
create mode 100644 keyboards/handwired/mutepad/config.h
create mode 100644 keyboards/handwired/mutepad/info.json
create mode 100644 keyboards/handwired/mutepad/keymaps/default/keymap.c
create mode 100644 keyboards/handwired/mutepad/keymaps/default/readme.md
create mode 100644 keyboards/handwired/mutepad/mutepad.c
create mode 100644 keyboards/handwired/mutepad/mutepad.h
create mode 100644 keyboards/handwired/mutepad/readme.md
create mode 100644 keyboards/handwired/mutepad/rules.mk
diff --git a/keyboards/handwired/mutepad/config.h b/keyboards/handwired/mutepad/config.h
new file mode 100644
index 000000000000..7113063223fd
--- /dev/null
+++ b/keyboards/handwired/mutepad/config.h
@@ -0,0 +1,90 @@
+// Copyright 2022 JoshwJB (@JoshwJB)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0000
+#define DEVICE_VER 0x0001
+#define MANUFACTURER JoshwJB
+#define PRODUCT MutePad
+
+/* key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 4
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS \
+ { F6 }
+#define MATRIX_COL_PINS \
+ { B1, B3, B2, B6 }
+#define UNUSED_PINS
+
+/* encoder support */
+#define ENCODERS_PAD_A \
+ { F4 }
+#define ENCODERS_PAD_B \
+ { F5 }
+
+#define ENCODER_RESOLUTION 2
+
+#define TAP_CODE_DELAY 10
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+#define FORCE_NKRO
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* Bootmagic Lite key configuration */
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/mutepad/info.json b/keyboards/handwired/mutepad/info.json
new file mode 100644
index 000000000000..b4a75a10e2d6
--- /dev/null
+++ b/keyboards/handwired/mutepad/info.json
@@ -0,0 +1,15 @@
+{
+ "keyboard_name": "MutePad",
+ "url": "https://github.com/JoshwJB/MutePad",
+ "maintainer": "JoshwJB",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label": "k00", "x": 0, "y": 0},
+ {"label": "k01", "x": 1, "y": 0},
+ {"label": "k02", "x": 2, "y": 0},
+ {"label": "k03", "x": 3, "y": 0},
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/mutepad/keymaps/default/keymap.c b/keyboards/handwired/mutepad/keymaps/default/keymap.c
new file mode 100644
index 000000000000..d26e230e538f
--- /dev/null
+++ b/keyboards/handwired/mutepad/keymaps/default/keymap.c
@@ -0,0 +1,43 @@
+// Copyright 2022 Joshua Barber (@JoshwJB)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names { _BASE };
+
+enum custom_keycodes { MUTE_GOOGLE_MEET = 0, MUTE_TEAMS = 1 };
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MUTE_GOOGLE_MEET:
+ if (record->event.pressed) {
+ tap_code16(G(KC_D));
+ }
+ break;
+ case MUTE_TEAMS:
+ if (record->event.pressed) {
+ tap_code16(C(S(KC_M)));
+ }
+ break;
+ }
+
+ return true;
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT(MUTE_TEAMS, KC_F23, KC_F24, KC_MPLY)};
+
+#ifdef ENCODER_ENABLE
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ return true;
+}
+
+#endif
diff --git a/keyboards/handwired/mutepad/keymaps/default/readme.md b/keyboards/handwired/mutepad/keymaps/default/readme.md
new file mode 100644
index 000000000000..c3c9ec6aec0b
--- /dev/null
+++ b/keyboards/handwired/mutepad/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for MutePad
diff --git a/keyboards/handwired/mutepad/mutepad.c b/keyboards/handwired/mutepad/mutepad.c
new file mode 100644
index 000000000000..09210c3f4f57
--- /dev/null
+++ b/keyboards/handwired/mutepad/mutepad.c
@@ -0,0 +1,4 @@
+// Copyright 2022 JoshwJB (@JoshwJB)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "mutepad.h"
diff --git a/keyboards/handwired/mutepad/mutepad.h b/keyboards/handwired/mutepad/mutepad.h
new file mode 100644
index 000000000000..57c317cb6010
--- /dev/null
+++ b/keyboards/handwired/mutepad/mutepad.h
@@ -0,0 +1,19 @@
+// Copyright 2022 JoshwJB (@JoshwJB)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT(K00, K01, K02, K03) \
+ { \
+ { K00, K01, K02, K03 } \
+ }
diff --git a/keyboards/handwired/mutepad/readme.md b/keyboards/handwired/mutepad/readme.md
new file mode 100644
index 000000000000..cbd1c9f31685
--- /dev/null
+++ b/keyboards/handwired/mutepad/readme.md
@@ -0,0 +1,33 @@
+# MutePad
+
+[MutePad Repo](https://github.com/JoshwJB/MutePad)
+
+A 3D printed under desk mounted keypad with rotary encoder, for muting applications (discord, zoom etc.) and adjusting volume.
+
+* Keyboard Maintainer: [JoshwJB](https://github.com/JoshwJB)
+* Hardware Supported: ProMicro
+* Hardware Availability: Handwired - see [MutePad Repo](https://github.com/JoshwJB/MutePad)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/mutepad:default
+
+Flashing example for this keyboard:
+
+ make handwired/mutepad: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 2 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 short the ground and reset on the ProMicro
+
+## Images
+![image](https://user-images.githubusercontent.com/15612025/157335123-a76ce059-86b4-4484-9bb2-0abff8a13cc8.png)
+
+### Wiring
+![image](https://user-images.githubusercontent.com/15612025/157336673-ad348e3d-4314-4703-afe0-a43a6f73b892.png)
+![image](https://user-images.githubusercontent.com/15612025/157335150-8491553f-a7dc-462a-a6af-bc4be223b703.png)
diff --git a/keyboards/handwired/mutepad/rules.mk b/keyboards/handwired/mutepad/rules.mk
new file mode 100644
index 000000000000..1a63bd74b104
--- /dev/null
+++ b/keyboards/handwired/mutepad/rules.mk
@@ -0,0 +1,19 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# 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 = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
From 1bc8793f83b205bb1c1dd18a6f9f3db14bbafe91 Mon Sep 17 00:00:00 2001
From: Alabahuy
Date: Mon, 21 Mar 2022 00:05:56 +0700
Subject: [PATCH 066/221] Add Rart75 hotswap and support via (#16619)
* Add Keyboard Rart75 Hotswap version
* Update readme
* Update config and readme
* Update info.json
* update readme and keymaps
---
keyboards/rart/rart75hs/config.h | 75 ++++++++++++++
keyboards/rart/rart75hs/info.json | 99 +++++++++++++++++++
.../rart/rart75hs/keymaps/default/keymap.c | 37 +++++++
keyboards/rart/rart75hs/keymaps/via/keymap.c | 55 +++++++++++
keyboards/rart/rart75hs/keymaps/via/rules.mk | 2 +
keyboards/rart/rart75hs/rart75hs.c | 31 ++++++
keyboards/rart/rart75hs/rart75hs.h | 34 +++++++
keyboards/rart/rart75hs/readme.md | 30 ++++++
keyboards/rart/rart75hs/rules.mk | 22 +++++
9 files changed, 385 insertions(+)
create mode 100644 keyboards/rart/rart75hs/config.h
create mode 100644 keyboards/rart/rart75hs/info.json
create mode 100644 keyboards/rart/rart75hs/keymaps/default/keymap.c
create mode 100644 keyboards/rart/rart75hs/keymaps/via/keymap.c
create mode 100644 keyboards/rart/rart75hs/keymaps/via/rules.mk
create mode 100644 keyboards/rart/rart75hs/rart75hs.c
create mode 100644 keyboards/rart/rart75hs/rart75hs.h
create mode 100644 keyboards/rart/rart75hs/readme.md
create mode 100644 keyboards/rart/rart75hs/rules.mk
diff --git a/keyboards/rart/rart75hs/config.h b/keyboards/rart/rart75hs/config.h
new file mode 100644
index 000000000000..d08e0612a21f
--- /dev/null
+++ b/keyboards/rart/rart75hs/config.h
@@ -0,0 +1,75 @@
+/*
+Copyright 2022 Alabahuy
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x414C // "AL"
+#define PRODUCT_ID 0x5575 // "75"
+#define DEVICE_VER 0x0003
+#define MANUFACTURER Alabahuy
+#define PRODUCT RART75 Hotswap
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 16
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { D5, D6, D7, D0, C5, C4 }
+#define MATRIX_COL_PINS { B4, B3, B2, B1, B0, A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C3 }
+#define UNUSED_PINS
+
+/* 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
+
+#define LED_CAPS_LOCK_PIN D4
+#define LED_PIN_ON_STATE 0
+
+#define ENCODERS_PAD_A { C1 }
+#define ENCODERS_PAD_B { C2 }
+#define ENCODER_RESOLUTION 4 //default/suggested
+
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 1
+
+#define RGB_DI_PIN C0
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_KNIGHT
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_TWINKLE
+/* You can change the number of RGB strip */
+#define RGBLED_NUM 11
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#define RGBLIGHT_LIMIT_VAL 240
+#define RGBLIGHT_SLEEP
+#endif
diff --git a/keyboards/rart/rart75hs/info.json b/keyboards/rart/rart75hs/info.json
new file mode 100644
index 000000000000..2a8cae96f8f0
--- /dev/null
+++ b/keyboards/rart/rart75hs/info.json
@@ -0,0 +1,99 @@
+{
+ "keyboard_name": "RART75 Hotswap",
+ "url": "",
+ "maintainer": "Alabahuy",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label" : "Esc", "x":0, "y":0},
+ {"label" : "F1", "x":1.25, "y":0},
+ {"label" : "F2", "x":2.25, "y":0},
+ {"label" : "F3", "x":3.25, "y":0},
+ {"label" : "F4", "x":4.25, "y":0},
+ {"label" : "F5", "x":5.5, "y":0},
+ {"label" : "F6", "x":6.5, "y":0},
+ {"label" : "F7", "x":7.5, "y":0},
+ {"label" : "F8", "x":8.5, "y":0},
+ {"label" : "F9", "x":9.75, "y":0},
+ {"label" : "F10", "x":10.75, "y":0},
+ {"label" : "F11", "x":11.75, "y":0},
+ {"label" : "F12", "x":12.75, "y":0},
+ {"label" : "Delete", "x":14, "y":0},
+ {"label" : "Encoder", "x":15.5, "y":0},
+
+ {"label" : "`", "x":0, "y":1.25},
+ {"label" : "1", "x":1, "y":1.25},
+ {"label" : "2", "x":2, "y":1.25},
+ {"label" : "3", "x":3, "y":1.25},
+ {"label" : "4", "x":4, "y":1.25},
+ {"label" : "5", "x":5, "y":1.25},
+ {"label" : "6", "x":6, "y":1.25},
+ {"label" : "7", "x":7, "y":1.25},
+ {"label" : "8", "x":8, "y":1.25},
+ {"label" : "9", "x":9, "y":1.25},
+ {"label" : "0", "x":10, "y":1.25},
+ {"label" : "-", "x":11, "y":1.25},
+ {"label" : "=", "x":12, "y":1.25},
+ {"label" : "Backspace", "x":13, "y":1.25, "w":2},
+ {"label" : "Page up", "x":15.5, "y":1.25},
+
+ {"label" : "Tab", "x":0, "y":2.25, "w":1.5},
+ {"label" : "Q", "x":1.5, "y":2.25},
+ {"label" : "W", "x":2.5, "y":2.25},
+ {"label" : "E", "x":3.5, "y":2.25},
+ {"label" : "R", "x":4.5, "y":2.25},
+ {"label" : "T", "x":5.5, "y":2.25},
+ {"label" : "Y", "x":6.5, "y":2.25},
+ {"label" : "U", "x":7.5, "y":2.25},
+ {"label" : "I", "x":8.5, "y":2.25},
+ {"label" : "O", "x":9.5, "y":2.25},
+ {"label" : "P", "x":10.5, "y":2.25},
+ {"label" : "[", "x":11.5, "y":2.25},
+ {"label" : "]", "x":12.5, "y":2.25},
+ {"label" : "|", "x":13.5, "y":2.25, "w":1.5},
+ {"label" : "Page down", "x":15.5, "y":2.25},
+
+ {"label" : "Caps lock", "x":0, "y":3.25, "w":1.75},
+ {"label" : "A", "x":1.75, "y":3.25},
+ {"label" : "S", "x":2.75, "y":3.25},
+ {"label" : "D", "x":3.75, "y":3.25},
+ {"label" : "F", "x":4.75, "y":3.25},
+ {"label" : "G", "x":5.75, "y":3.25},
+ {"label" : "H", "x":6.75, "y":3.25},
+ {"label" : "J", "x":7.75, "y":3.25},
+ {"label" : "K", "x":8.75, "y":3.25},
+ {"label" : "L", "x":9.75, "y":3.25},
+ {"label" : ";", "x":10.75, "y":3.25},
+ {"label" : "'", "x":11.75, "y":3.25},
+ {"label" : "Enter", "x":12.75, "y":3.25, "w":2.25},
+ {"label" : "Home", "x":15.5, "y":3.25},
+
+ {"label" : "Shift", "x":0, "y":4.25, "w":2.25},
+ {"label" : "Z", "x":2.25, "y":4.25},
+ {"label" : "X", "x":3.25, "y":4.25},
+ {"label" : "C", "x":4.25, "y":4.25},
+ {"label" : "V", "x":5.25, "y":4.25},
+ {"label" : "B", "x":6.25, "y":4.25},
+ {"label" : "N", "x":7.25, "y":4.25},
+ {"label" : "M", "x":8.25, "y":4.25},
+ {"label" : ",", "x":9.25, "y":4.25},
+ {"label" : ".", "x":10.25, "y":4.25},
+ {"label" : "/", "x":11.25, "y":4.25},
+ {"label" : "Shift", "x":12.25, "y":4.25, "w":1.75},
+ {"label" : "Up", "x":14.25, "y":4.5},
+ {"label" : "End", "x":15.5, "y":4.25},
+
+ {"label" : "Ctrl", "x":0, "y":5.25, "w":1.25},
+ {"label" : "Windows", "x":1.25, "y":5.25, "w":1.25},
+ {"label" : "Alt", "x":2.5, "y":5.25, "w":1.25},
+ {"label" : "Space", "x":3.75, "y":5.25, "w":6.25},
+ {"label" : "Alt", "x":10, "y":5.25 },
+ {"label" : "Windows","x":11, "y":5.25 },
+ {"label" : "Ctrl", "x":12, "y":5.25 },
+ {"label" : "Left", "x":13.25, "y":5.5 },
+ {"label" : "Down", "x":14.25, "y":5.5 },
+ {"label" : "Right", "x":15.25, "y":5.5 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/rart/rart75hs/keymaps/default/keymap.c b/keyboards/rart/rart75hs/keymaps/default/keymap.c
new file mode 100644
index 000000000000..c6f334e98fc1
--- /dev/null
+++ b/keyboards/rart/rart75hs/keymaps/default/keymap.c
@@ -0,0 +1,37 @@
+/* Copyright 2022 Alabahuy
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_MPLY,
+ 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_HOME,
+ 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_END,
+ 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
+ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
diff --git a/keyboards/rart/rart75hs/keymaps/via/keymap.c b/keyboards/rart/rart75hs/keymaps/via/keymap.c
new file mode 100644
index 000000000000..27a4f99fa658
--- /dev/null
+++ b/keyboards/rart/rart75hs/keymaps/via/keymap.c
@@ -0,0 +1,55 @@
+/* Copyright 2022 Alabahuy
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_MPLY,
+ 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_HOME,
+ 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_END,
+ 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
+ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [2] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [3] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
diff --git a/keyboards/rart/rart75hs/keymaps/via/rules.mk b/keyboards/rart/rart75hs/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/rart/rart75hs/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/rart/rart75hs/rart75hs.c b/keyboards/rart/rart75hs/rart75hs.c
new file mode 100644
index 000000000000..f2475ab9606b
--- /dev/null
+++ b/keyboards/rart/rart75hs/rart75hs.c
@@ -0,0 +1,31 @@
+/* Copyright 2022 Alabahuy
+ * 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 .
+ */
+#include "rart75hs.h"
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ switch (index) {
+ case 0:
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ break;
+ }
+ return true;
+}
+#endif
diff --git a/keyboards/rart/rart75hs/rart75hs.h b/keyboards/rart/rart75hs/rart75hs.h
new file mode 100644
index 000000000000..f3b25df1b65a
--- /dev/null
+++ b/keyboards/rart/rart75hs/rart75hs.h
@@ -0,0 +1,34 @@
+/* Copyright 2022 Alabahuy
+ * 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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K0A, K0B, K0C, K0D, K0E, K0F, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3F, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4E, K4F, \
+ K50, K51, K52, K54, K58, K59, K5A, K5B, K5E, K5F \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, KC_NO, K0A, K0B, K0C, K0D, K0E, K0F }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1F }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO, K3F }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, KC_NO, K4E, K4F }, \
+ { K50, K51, K52, KC_NO, K54, KC_NO, KC_NO, KC_NO, K58, K59, K5A, K5B, KC_NO, KC_NO, K5E, K5F }, \
+}
diff --git a/keyboards/rart/rart75hs/readme.md b/keyboards/rart/rart75hs/readme.md
new file mode 100644
index 000000000000..af8db99a0204
--- /dev/null
+++ b/keyboards/rart/rart75hs/readme.md
@@ -0,0 +1,30 @@
+# [RART 75 Hotswap](https://github.com/alabahuy/RART/tree/master/RART75)
+
+![RART 75](https://i.imgur.com/FVWlm8Uh.jpeg)
+
+75% pcb with encoder, based on IMKG (Indonesia Mechanical Keyboard Group)
+
+* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy)
+* Hardware Supported: RART75 PCB, Atmega32a, Type C, Encoders
+* Hardware Availability: Private GB
+
+Make example for this keyboard (after setting up your build environment):
+
+ make rart/rart75hs:default
+
+Flashing example for this keyboard:
+
+ make rart/rart75hs:default:flash
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* To Enter the bootloader you can short and hold boot pin, short reset pin, release reset and boot pin.
+
+* Bootmagic reset, hold down the key at (0,0) in the matrix (ESC) and plug in the keyboard.
+
+* Bootloader reset on the matrix, hold down key at (0,1) and plug in the keyboard
+
+
+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).
diff --git a/keyboards/rart/rart75hs/rules.mk b/keyboards/rart/rart75hs/rules.mk
new file mode 100644
index 000000000000..3a9dc7e9bc9e
--- /dev/null
+++ b/keyboards/rart/rart75hs/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32a
+
+# Bootloader selection
+BOOTLOADER = usbasploader
+
+# Processor frequency
+F_CPU = 16000000
+
+# 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 = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
From 669ad3c8052fa36e03c105cb00b60b178aaf20cc Mon Sep 17 00:00:00 2001
From: Droxx <101306764+furfuzz@users.noreply.github.com>
Date: Sun, 20 Mar 2022 11:24:09 -0600
Subject: [PATCH 067/221] Droxx keymap (#16607)
* add droxx kaymap
* add droxx keymap
* fixed config.h
* fixed rules.mk
* fixed rules.mk
* updated readme.md
* Update config.h
* Update keymap.c
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update config.h
* Update readme.md
* Update keymap.c
---
.../kbdfans/kbd67/rev2/keymaps/droxx/config.h | 30 ++++++++
.../kbdfans/kbd67/rev2/keymaps/droxx/keymap.c | 71 +++++++++++++++++++
.../kbd67/rev2/keymaps/droxx/readme.md | 30 ++++++++
.../kbdfans/kbd67/rev2/keymaps/droxx/rules.mk | 3 +
4 files changed, 134 insertions(+)
create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h
create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/droxx/keymap.c
create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/droxx/readme.md
create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/droxx/rules.mk
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h
new file mode 100644
index 000000000000..911051c31a2a
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h
@@ -0,0 +1,30 @@
+/*
+Copyright 2022 Alex K
+
+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 .
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#undef VENDOR_ID
+#undef MANUFACTURER
+#undef PRODUCT
+
+#define VENDOR_ID 0xAF88
+#define MANUFACTURER Droxx-FurFuzz
+#define PRODUCT Carbon v2 4rk
+
+/* force N key rollover even on startup regardless of EEPROM setting */
+#define FORCE_NKRO
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/keymap.c
new file mode 100644
index 000000000000..1c6e2b982dfc
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/keymap.c
@@ -0,0 +1,71 @@
+// KBD67 Rev 2 ANSI Layout
+
+/* Copyright 2022 Alex K
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+// #include "droxx.h"
+
+// make keycodes easier to change for the future
+#define DRXX KC_TRNS
+
+// enumerate custom layer names for the keymap
+enum keymap_layers {
+ _DRXXMAIN = 0,
+ _DRXXFN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Keymap Base Layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
+ * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BackSp│Hom│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
+ * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ BkSl│PgU│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ ↑ │End│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
+ * │Ctrl│ Win│ Alt│ Space │Alt│Fn │Ctl│ ← │ ↓ │ → │
+ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
+ */
+[_DRXXMAIN] = LAYOUT_65_ansi(
+ 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_HOME,
+ 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_ENT, KC_PGDN,
+ 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_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_DRXXFN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ /* Keymap Fn Layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
+ * │~ `│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Del│Ins│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
+ * │ │RM-│RB+│RM+│ │RTg│ │ │ │ │ │ │ │ │Pau│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │ │RS-│RB-│RS+│ │ │ │ │ │ │ │ │ │SLk│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │ │ │DGu│EGu│ │ │ │ │ │ │ │ │ │PSr│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
+ */
+[_DRXXFN] = LAYOUT_65_ansi(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
+ DRXX , RGB_RMOD, RGB_VAI, RGB_MOD, DRXX, RGB_TOG, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, KC_PAUS,
+ DRXX, RGB_SPD, RGB_VAD, RGB_SPI, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, KC_SLCK,
+ DRXX, DRXX, GUI_OFF, GUI_ON, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, KC_PSCR,
+ DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX, DRXX),
+};
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/readme.md b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/readme.md
new file mode 100644
index 000000000000..26d686c977e6
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/readme.md
@@ -0,0 +1,30 @@
+## Droxx's ANSI style keymap for the KBD67 REV 2 PCB
+
+* An ANSI keymap layout made by Alex for the KBD67 Rev 2
+* This keymap features two layers using basic Fn alternate keys on the second layer as well as lighting control
+
+![KBD67Rev2 Layout](https://i.imgur.com/DPSMhIX.png)
+
+### Layer 0 (_DRXXMAIN)
+
+The base QWERTY layer
+
+* Basic qwerty key layout with nothing other than an Fn key
+* Fn on the bottom row activates layer 1
+
+### Layer 1 (_DRXXFN)
+
+The function layer
+
+* Backspace will trigger KC_DEL until I find the KC_HOME key less useful.
+* Pressing T will toggle the keyboard underglow feature on and off.
+* Keys Q and E are used to change the underglow style of the keyboard.
+* Keys W and S modify the brightness of the underglow.
+* Keys A and D change the speed of the LED RGB animation.
+
+~~When Fn is held on layer 0, the arrow keys become a control surface for the LED baclighting~~
+~~The up arrow is used to cycle backlight modes, down arrow for toggling the backlight on or off,~~
+~~and the right and left for increasing and decreasing the brightness respectively.~~[^note]
+* X is used to disable the GUI key and C is used to enable the GUI key.
+
+[^note]: I don't have in-switch LEDs installed?
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/rules.mk b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/rules.mk
new file mode 100644
index 000000000000..c9b5587d59af
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/rev2/keymaps/droxx/rules.mk
@@ -0,0 +1,3 @@
+MOUSEKEY_ENABLE = no
+BACKLIGHT_ENABLE = no
+RGBLIGHT_ENABLE = yes
From 7eb6f86bc0aac3ff83abe4365cd11c5c195dc403 Mon Sep 17 00:00:00 2001
From: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Date: Mon, 21 Mar 2022 17:05:38 +0900
Subject: [PATCH 068/221] [Keyboard] add oled_task_kb() into
keyboards/helix/rev2/rev2.c (#16697)
---
.../helix/rev2/keymaps/default/oled_display.c | 6 ++---
keyboards/helix/rev2/rev2.c | 24 +++++++++++++++++++
keyboards/helix/rev2/rev2.h | 4 ++++
3 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/keyboards/helix/rev2/keymaps/default/oled_display.c b/keyboards/helix/rev2/keymaps/default/oled_display.c
index 4ee3f002d607..824d2e4d8645 100644
--- a/keyboards/helix/rev2/keymaps/default/oled_display.c
+++ b/keyboards/helix/rev2/keymaps/default/oled_display.c
@@ -74,9 +74,6 @@ void matrix_update(struct CharacterMatrix *dest,
# ifdef SSD1306OLED
static void render_logo(struct CharacterMatrix *matrix) {
-# else
-static void render_logo(void) {
-# endif
static const char helix_logo[] PROGMEM ={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
@@ -85,6 +82,7 @@ static void render_logo(void) {
0};
oled_write_P(helix_logo, false);
}
+# endif
# ifdef SSD1306OLED
static void render_rgbled_status(bool full, struct CharacterMatrix *matrix) {
@@ -219,7 +217,7 @@ bool oled_task_user(void) {
if (is_keyboard_master()) {
render_status();
} else {
- render_logo();
+ render_helix_logo();
render_rgbled_status(false);
render_layer_status();
}
diff --git a/keyboards/helix/rev2/rev2.c b/keyboards/helix/rev2/rev2.c
index f579027c7107..ba29f3c7de56 100644
--- a/keyboards/helix/rev2/rev2.c
+++ b/keyboards/helix/rev2/rev2.c
@@ -64,3 +64,27 @@ void matrix_slave_scan_user(void) {
matrix_scan_user();
}
#endif
+
+#ifdef OLED_ENABLE
+void render_helix_logo(void) {
+ static const char helix_logo[] PROGMEM ={
+ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
+ 0};
+ oled_write_P(helix_logo, false);
+}
+
+bool oled_task_kb(void) {
+ if (oled_task_user()) {
+ /* keymap/user level oled_task_user() dose not exist */
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "), false);
+ oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
+ oled_write_P(led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "), false);
+ oled_write_P(PSTR("\n"), false);
+ render_helix_logo();
+ }
+ return false;
+}
+#endif /* end of OLED_ENABLE */
diff --git a/keyboards/helix/rev2/rev2.h b/keyboards/helix/rev2/rev2.h
index 5c7cc93d17fc..fccbaf1ac4be 100644
--- a/keyboards/helix/rev2/rev2.h
+++ b/keyboards/helix/rev2/rev2.h
@@ -20,6 +20,10 @@
bool is_mac_mode(void);
void set_mac_mode_kb(bool macmode);
+#ifdef OLED_ENABLE
+void render_helix_logo(void);
+#endif
+
#ifndef SPLIT_KEYBOARD
extern bool is_helix_master(void);
#define is_keyboard_master() is_helix_master()
From 4f8cc32cf50fb2b6eb3764a7d971c41121c9bc89 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Mon, 21 Mar 2022 10:57:41 +0000
Subject: [PATCH 069/221] Extend 'qmk info' to handle keymap level overrides
(#16702)
---
lib/python/qmk/cli/generate/config_h.py | 10 ++---
lib/python/qmk/cli/generate/rules_mk.py | 10 ++---
lib/python/qmk/cli/info.py | 16 ++++++--
lib/python/qmk/info.py | 49 ++++++++++++++++++++-----
4 files changed, 58 insertions(+), 27 deletions(-)
diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py
index adefdb573232..20c9595ed7dc 100755
--- a/lib/python/qmk/cli/generate/config_h.py
+++ b/lib/python/qmk/cli/generate/config_h.py
@@ -5,10 +5,9 @@
from dotty_dict import dotty
from milc import cli
-from qmk.info import info_json
-from qmk.json_schema import json_load, validate
+from qmk.info import info_json, keymap_json_config
+from qmk.json_schema import json_load
from qmk.keyboard import keyboard_completer, keyboard_folder
-from qmk.keymap import locate_keymap
from qmk.commands import dump_lines
from qmk.path import normpath
from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
@@ -180,10 +179,7 @@ def generate_config_h(cli):
"""
# Determine our keyboard/keymap
if cli.args.keymap:
- km = locate_keymap(cli.args.keyboard, cli.args.keymap)
- km_json = json_load(km)
- validate(km_json, 'qmk.keymap.v1')
- kb_info_json = dotty(km_json.get('config', {}))
+ kb_info_json = dotty(keymap_json_config(cli.args.keyboard, cli.args.keymap))
else:
kb_info_json = dotty(info_json(cli.args.keyboard))
diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py
index 6f342c6567a1..9623d00fb5ed 100755
--- a/lib/python/qmk/cli/generate/rules_mk.py
+++ b/lib/python/qmk/cli/generate/rules_mk.py
@@ -5,10 +5,9 @@
from dotty_dict import dotty
from milc import cli
-from qmk.info import info_json
-from qmk.json_schema import json_load, validate
+from qmk.info import info_json, keymap_json_config
+from qmk.json_schema import json_load
from qmk.keyboard import keyboard_completer, keyboard_folder
-from qmk.keymap import locate_keymap
from qmk.commands import dump_lines
from qmk.path import normpath
from qmk.constants import GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE
@@ -51,10 +50,7 @@ def generate_rules_mk(cli):
"""
# Determine our keyboard/keymap
if cli.args.keymap:
- km = locate_keymap(cli.args.keyboard, cli.args.keymap)
- km_json = json_load(km)
- validate(km_json, 'qmk.keymap.v1')
- kb_info_json = dotty(km_json.get('config', {}))
+ kb_info_json = dotty(keymap_json_config(cli.args.keyboard, cli.args.keymap))
else:
kb_info_json = dotty(info_json(cli.args.keyboard))
diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py
index 3131d4b53f9f..fa5729bcc9b8 100755
--- a/lib/python/qmk/cli/info.py
+++ b/lib/python/qmk/cli/info.py
@@ -11,8 +11,8 @@
from qmk.constants import COL_LETTERS, ROW_LETTERS
from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.keyboard import keyboard_completer, keyboard_folder, render_layouts, render_layout, rules_mk
+from qmk.info import info_json, keymap_json
from qmk.keymap import locate_keymap
-from qmk.info import info_json
from qmk.path import is_keyboard
UNICODE_SUPPORT = sys.stdout.encoding.lower().startswith('utf')
@@ -135,7 +135,7 @@ def print_parsed_rules_mk(keyboard_name):
@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='Keyboard to show info for.')
-@cli.argument('-km', '--keymap', help='Show the layers for a JSON keymap too.')
+@cli.argument('-km', '--keymap', help='Keymap to show info for (Optional).')
@cli.argument('-l', '--layouts', action='store_true', help='Render the layouts.')
@cli.argument('-m', '--matrix', action='store_true', help='Render the layouts with matrix information.')
@cli.argument('-f', '--format', default='friendly', arg_only=True, help='Format to display the data in (friendly, text, json) (Default: friendly).')
@@ -161,8 +161,15 @@ def info(cli):
print_parsed_rules_mk(cli.config.info.keyboard)
return False
+ # default keymap stored in config file should be ignored
+ if cli.config_source.info.keymap == 'config_file':
+ cli.config_source.info.keymap = None
+
# Build the info.json file
- kb_info_json = info_json(cli.config.info.keyboard)
+ if cli.config.info.keymap:
+ kb_info_json = keymap_json(cli.config.info.keyboard, cli.config.info.keymap)
+ else:
+ kb_info_json = info_json(cli.config.info.keyboard)
# Output in the requested format
if cli.args.format == 'json':
@@ -178,11 +185,12 @@ def info(cli):
cli.log.error('Unknown format: %s', cli.args.format)
return False
+ # Output requested extras
if cli.config.info.layouts:
show_layouts(kb_info_json, title_caps)
if cli.config.info.matrix:
show_matrix(kb_info_json, title_caps)
- if cli.config_source.info.keymap and cli.config_source.info.keymap != 'config_file':
+ if cli.config.info.keymap:
show_keymap(kb_info_json, title_caps)
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index c399a9f32198..d104d655ef0a 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -8,10 +8,11 @@
from milc import cli
from qmk.constants import CHIBIOS_PROCESSORS, LUFA_PROCESSORS, VUSB_PROCESSORS
-from qmk.c_parse import find_layouts
+from qmk.c_parse import find_layouts, parse_config_h_file
from qmk.json_schema import deep_update, json_load, validate
from qmk.keyboard import config_h, rules_mk
-from qmk.keymap import list_keymaps
+from qmk.keymap import list_keymaps, locate_keymap
+from qmk.commands import parse_configurator_json
from qmk.makefile import parse_rules_mk_file
from qmk.math import compute
@@ -68,8 +69,8 @@ def info_json(keyboard):
# Merge in the data from info.json, config.h, and rules.mk
info_data = merge_info_jsons(keyboard, info_data)
- info_data = _extract_rules_mk(info_data)
- info_data = _extract_config_h(info_data)
+ info_data = _extract_rules_mk(info_data, rules_mk(str(keyboard)))
+ info_data = _extract_config_h(info_data, config_h(str(keyboard)))
# Ensure that we have matrix row and column counts
info_data = _matrix_size(info_data)
@@ -400,11 +401,9 @@ def _extract_device_version(info_data):
info_data['usb']['device_version'] = f'{major}.{minor}.{revision}'
-def _extract_config_h(info_data):
+def _extract_config_h(info_data, config_c):
"""Pull some keyboard information from existing config.h files
"""
- config_c = config_h(info_data['keyboard_folder'])
-
# Pull in data from the json map
dotty_info = dotty(info_data)
info_config_map = json_load(Path('data/mappings/info_config.json'))
@@ -472,10 +471,9 @@ def _extract_config_h(info_data):
return info_data
-def _extract_rules_mk(info_data):
+def _extract_rules_mk(info_data, rules):
"""Pull some keyboard information from existing rules.mk files
"""
- rules = rules_mk(info_data['keyboard_folder'])
info_data['processor'] = rules.get('MCU', info_data.get('processor', 'atmega32u4'))
if info_data['processor'] in CHIBIOS_PROCESSORS:
@@ -766,3 +764,36 @@ def find_info_json(keyboard):
# Return a list of the info.json files that actually exist
return [info_json for info_json in info_jsons if info_json.exists()]
+
+
+def keymap_json_config(keyboard, keymap):
+ """Extract keymap level config
+ """
+ keymap_folder = locate_keymap(keyboard, keymap).parent
+
+ km_info_json = parse_configurator_json(keymap_folder / 'keymap.json')
+ return km_info_json.get('config', {})
+
+
+def keymap_json(keyboard, keymap):
+ """Generate the info.json data for a specific keymap.
+ """
+ keymap_folder = locate_keymap(keyboard, keymap).parent
+
+ # Files to scan
+ keymap_config = keymap_folder / 'config.h'
+ keymap_rules = keymap_folder / 'rules.mk'
+ keymap_file = keymap_folder / 'keymap.json'
+
+ # Build the info.json file
+ kb_info_json = info_json(keyboard)
+
+ # Merge in the data from keymap.json
+ km_info_json = keymap_json_config(keyboard, keymap) if keymap_file.exists() else {}
+ deep_update(kb_info_json, km_info_json)
+
+ # Merge in the data from config.h, and rules.mk
+ _extract_rules_mk(kb_info_json, parse_rules_mk_file(keymap_rules))
+ _extract_config_h(kb_info_json, parse_config_h_file(keymap_config))
+
+ return kb_info_json
From 23f365f8bc4c44a0877478aada39c5787c33846e Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Tue, 22 Mar 2022 10:48:13 +0000
Subject: [PATCH 070/221] Ignore transport defaults if SPLIT_KEYBOARD is unset
(#16706)
* Ignore transport defaults if SPLIT_KEYBOARD is unset
* keep exists check
---
lib/python/qmk/info.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index d104d655ef0a..900cddaaa946 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -271,14 +271,16 @@ def _extract_split_transport(info_data, config_c):
info_data['split']['transport']['protocol'] = 'i2c'
- elif 'protocol' not in info_data.get('split', {}).get('transport', {}):
+ # Ignore transport defaults if "SPLIT_KEYBOARD" is unset
+ elif 'enabled' in info_data.get('split', {}):
if 'split' not in info_data:
info_data['split'] = {}
if 'transport' not in info_data['split']:
info_data['split']['transport'] = {}
- info_data['split']['transport']['protocol'] = 'serial'
+ if 'protocol' not in info_data['split']['transport']:
+ info_data['split']['transport']['protocol'] = 'serial'
def _extract_split_right_pins(info_data, config_c):
From f610011aa3d43c41489ddc638a3a8731ae0d51bf Mon Sep 17 00:00:00 2001
From: Luc
Date: Wed, 23 Mar 2022 00:38:50 +0800
Subject: [PATCH 071/221] [Keymap] personal keymap, ergodox_ez and atreus /
dvorak_42_key (#16695)
---
.../atreus/keymaps/dvorak_42_key/keymap.c | 32 ++++++--
.../ergodox_ez/keymaps/dvorak_42_key/keymap.c | 77 ++++++++++++++-----
2 files changed, 82 insertions(+), 27 deletions(-)
diff --git a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c
index dbe39a38bc61..eff7c8d577cc 100644
--- a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c
+++ b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c
@@ -30,20 +30,23 @@
// visual studio code shortcuts
#define VS_FILE LCTL(KC_P)
+#define VS_OPEN_FILE LCTL(KC_O)
#define VS_LINE LCTL(KC_G)
#define VS_SYMBOLEDITOR LCTL(LSFT(KC_O))
-#define VS_DEFINITION KC_F12
-#define VS_IMPLEMENTATION LCTL(KC_F12)
-#define VS_REFERENCES LSFT(KC_F12)
+#define VS_DEFINITION MEH(KC_F5)
+#define VS_IMPLEMENTATION MEH(KC_F6)
+#define VS_REFERENCES MEH(KC_F7)
#define VS_BACK LALT(KC_LEFT)
#define VS_BRACKET LCTL(LSFT(KC_BSLS))
-#define VS_TABLEFT LCTL(KC_PGUP)
-#define VS_TABRIGHT LCTL(KC_PGDN)
-#define VS_CLOSETAB LCTL(KC_W)
+#define VS_TABLEFT MEH(KC_F1)
+#define VS_TABRIGHT MEH(KC_F2)
+#define VS_CLOSETAB MEH(KC_F3)
#define VS_CLOSEPANEL LCTL(LSFT(KC_W))
+#define VS_GROUP_1 LCTL(KC_1)
+#define VS_GROUP_2 LCTL(KC_2)
#define VS_TERMINAL LCTL(KC_GRAVE)
#define VS_BUILD LCTL(LSFT(KC_B))
-#define VS_COMMANDS LCTL(LSFT(KC_P))
+#define VS_COMMANDS MEH(KC_F4)
#define VS_CMT_BLOCK LSFT(LALT(KC_A))
#define VS_CMT_LINE LCTL(KC_SLSH)
#define VS_DEL_LINE LCTL(LSFT(KC_K))
@@ -54,7 +57,18 @@
#define VS_BM_PREV LCTL(LALT(KC_P))
#define VS_BM_NEXT LCTL(LALT(KC_N))
#define VS_BM_TOGGLE LCTL(LALT(KC_K))
-#define VS_BM_LABEL LCTL(LALT(KC_B))
+#define VS_BM_CLEARALL LCTL(LALT(KC_C))
+// visual studio code navigation shortcuts
+#define VS_FOCUS_EDITOR MEH(KC_F8)
+#define VS_FOCUS_TERMINAL MEH(KC_F9)
+#define VS_TOGGLE_TERMINAL MEH(KC_F10)
+#define VS_CLEAR_TERMINAL MEH(KC_F11)
+#define VS_TERMINAL_PREV MEH(KC_F12)
+#define VS_TERMINAL_NEXT MEH(KC_F13)
+#define VS_TERMINAL_NEW MEH(KC_F14)
+#define VS_TERMINAL_DETACH MEH(KC_F15)
+#define VS_TERMINAL_RENAME MEH(KC_F16)
+#define VS_JUMPY MEH(KC_F17)
/*
// VS code bookmark prev/next requires the following in vscode shortcuts config
@@ -80,6 +94,8 @@ enum custom_keycodes {
// building/flashing instructions:
// make atreus/astar:dvorak_42_key:flash
+// or
+// qmk compile -kb atreus -km dvorak_42_key
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT(
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
index 67a09188ab4e..fab29773569a 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
@@ -79,9 +79,9 @@ enum custom_keycodes {
SCREEN_READREG_1,
SCREEN_READREG_2,
- SCREEN_READREG_3,
+ SCREEN_READREG_3,
SCREEN_PASTEREG_1,
- SCREEN_PASTEREG_2,
+ SCREEN_PASTEREG_2,
SCREEN_PASTEREG_3,
// Windows 10 macros,
@@ -101,6 +101,7 @@ enum custom_keycodes {
#define COMBINED 7 // combined numbers and symbols layer
#define ANDROID_STUDIO 8 // android studio specific layer
#define VSCODE 9 // visual studio code specific layer
+#define VSCODE_NAV 10 // visual studio code, navigation within IDE
@@ -131,22 +132,22 @@ enum custom_keycodes {
#define VS_OPEN_FILE LCTL(KC_O)
#define VS_LINE LCTL(KC_G)
#define VS_SYMBOLEDITOR LCTL(LSFT(KC_O))
-#define VS_DEFINITION KC_F12
-#define VS_IMPLEMENTATION LCTL(KC_F12)
-#define VS_REFERENCES LSFT(KC_F12)
+#define VS_DEFINITION MEH(KC_F5)
+#define VS_IMPLEMENTATION MEH(KC_F6)
+#define VS_REFERENCES MEH(KC_F7)
#define VS_BACK LALT(KC_LEFT)
#define VS_BRACKET LCTL(LSFT(KC_BSLS))
-#define VS_TABLEFT LCTL(KC_PGUP)
-#define VS_TABRIGHT LCTL(KC_PGDN)
-#define VS_CLOSETAB LCTL(KC_W)
+#define VS_TABLEFT MEH(KC_F1)
+#define VS_TABRIGHT MEH(KC_F2)
+#define VS_CLOSETAB MEH(KC_F3)
#define VS_CLOSEPANEL LCTL(LSFT(KC_W))
#define VS_GROUP_1 LCTL(KC_1)
#define VS_GROUP_2 LCTL(KC_2)
#define VS_TERMINAL LCTL(KC_GRAVE)
#define VS_BUILD LCTL(LSFT(KC_B))
-#define VS_COMMANDS LCTL(LSFT(KC_P))
+#define VS_COMMANDS MEH(KC_F4)
#define VS_CMT_BLOCK LSFT(LALT(KC_A))
-#define VS_CMT_LINE LCTL(KC_SLSH)
+#define VS_CMT_LINE MEH(KC_F18)
#define VS_DEL_LINE LCTL(LSFT(KC_K))
#define VS_COPYLINEDOWN LSFT(LALT(KC_DOWN))
// visual studio bookmark commands
@@ -156,6 +157,18 @@ enum custom_keycodes {
#define VS_BM_NEXT LCTL(LALT(KC_N))
#define VS_BM_TOGGLE LCTL(LALT(KC_K))
#define VS_BM_CLEARALL LCTL(LALT(KC_C))
+// visual studio code navigation shortcuts
+#define VS_FOCUS_EDITOR MEH(KC_F8)
+#define VS_FOCUS_TERMINAL MEH(KC_F9)
+#define VS_TOGGLE_TERMINAL MEH(KC_F10)
+#define VS_CLEAR_TERMINAL MEH(KC_F11)
+#define VS_TERMINAL_PREV MEH(KC_F12)
+#define VS_TERMINAL_NEXT MEH(KC_F13)
+#define VS_TERMINAL_NEW MEH(KC_F14)
+#define VS_TERMINAL_DETACH MEH(KC_F15)
+#define VS_TERMINAL_RENAME MEH(KC_F16)
+#define VS_JUMPY MEH(KC_F17)
+#define VS_FIND MEH(KC_F19)
#define MACRO_SCREEN_NUM(MACRO_NAME,NUM) \
@@ -204,10 +217,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_ergodox(
// left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- OSL(SCREEN_NAV), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, MO(ANDROID_STUDIO),
+ OSL(SCREEN_NAV), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, MO(VSCODE_NAV),
OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I,
OSL(SHELL_SCREEN), KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MO(VSCODE),
- MEH(KC_1), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL),
+ MEH(KC_0), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL),
// left thumb cluster
WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT,
@@ -215,14 +228,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MO(COMBINED),MO(KEYNAV), OSM(MOD_LALT),
// right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_9),
- MEH(KC_7), KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_7),
+ MEH(KC_1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
KC_D, KC_H, KC_T, KC_N, KC_S, RCTL(KC_BSPC),
- MEH(KC_8), KC_B, KC_M, KC_W, KC_V, KC_Z, MEH(KC_F3),
- KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT),MEH(KC_F4),
+ MEH(KC_2), KC_B, KC_M, KC_W, KC_V, KC_Z, MEH(KC_8),
+ KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT),MEH(KC_9),
// right thumb cluster
- MEH(KC_F5),MEH(KC_F6),MEH(KC_F7),MEH(KC_F8),KC_ENTER,KC_SPACE
+ MEH(KC_3), MEH(KC_4), MEH(KC_5), MEH(KC_6),KC_ENTER,KC_SPACE
),
@@ -398,7 +411,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
VS_CMT_LINE, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET,
VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK,
- VS_CMT_BLOCK, KC_TRNS, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE,
+ VS_CMT_BLOCK, VS_FIND, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE,
// bottom row
VS_COMMANDS, VS_BM_LIST, VS_BM_LISTALL, VS_CLOSEPANEL, VS_BM_CLEARALL,
// thumb cluster
@@ -407,6 +420,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, VS_DEL_LINE, KC_TRNS
),
+ // vscode navigation shortcuts
+ [VSCODE_NAV] = LAYOUT_ergodox(
+ // left hand
+ KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ // bottom row
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // thumb cluster
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ VS_TOGGLE_TERMINAL, VS_FOCUS_TERMINAL, VS_FOCUS_EDITOR, VS_JUMPY, KC_TRNS, KC_TRNS,
+ KC_TRNS, VS_CLEAR_TERMINAL, VS_TERMINAL_PREV, VS_TERMINAL_NEXT, VS_TERMINAL_NEW, VS_TERMINAL_DETACH, VS_TERMINAL_RENAME,
+ // bottom row
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ // thumb cluster
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
[COMBINED] = LAYOUT_ergodox(
// left hand
@@ -659,7 +698,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
tap_code16(C(KC_A));
tap_code16(S(KC_SCOLON));
SEND_STRING("paste 1\n");
- break;
+ break;
case SCREEN_PASTEREG_2:
tap_code16(C(KC_A));
tap_code16(S(KC_SCOLON));
From c803c50dc069e58d0759b500f2964f6dc4f4c913 Mon Sep 17 00:00:00 2001
From: kb-elmo
Date: Wed, 23 Mar 2022 06:06:26 +0100
Subject: [PATCH 072/221] [Keyboard] Add Axolstudio Foundation Gamma (#15948)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
.../axolstudio/foundation_gamma/config.h | 44 ++++
.../foundation_gamma/foundation_gamma.c | 17 ++
.../foundation_gamma/foundation_gamma.h | 53 +++++
.../axolstudio/foundation_gamma/info.json | 191 ++++++++++++++++++
.../foundation_gamma/keymaps/default/keymap.c | 35 ++++
.../foundation_gamma/keymaps/via/keymap.c | 51 +++++
.../foundation_gamma/keymaps/via/rules.mk | 2 +
.../axolstudio/foundation_gamma/readme.md | 25 +++
.../axolstudio/foundation_gamma/rules.mk | 18 ++
9 files changed, 436 insertions(+)
create mode 100644 keyboards/axolstudio/foundation_gamma/config.h
create mode 100644 keyboards/axolstudio/foundation_gamma/foundation_gamma.c
create mode 100644 keyboards/axolstudio/foundation_gamma/foundation_gamma.h
create mode 100644 keyboards/axolstudio/foundation_gamma/info.json
create mode 100644 keyboards/axolstudio/foundation_gamma/keymaps/default/keymap.c
create mode 100644 keyboards/axolstudio/foundation_gamma/keymaps/via/keymap.c
create mode 100644 keyboards/axolstudio/foundation_gamma/keymaps/via/rules.mk
create mode 100644 keyboards/axolstudio/foundation_gamma/readme.md
create mode 100644 keyboards/axolstudio/foundation_gamma/rules.mk
diff --git a/keyboards/axolstudio/foundation_gamma/config.h b/keyboards/axolstudio/foundation_gamma/config.h
new file mode 100644
index 000000000000..6883e51d5799
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/config.h
@@ -0,0 +1,44 @@
+/*
+Copyright 2021 kb-elmo
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x525C
+#define PRODUCT_ID 0xE3EB
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Axolstudio
+#define PRODUCT Foundation Gamma
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+/* Keyboard Matrix Assignments */
+#define MATRIX_ROW_PINS { B2, B1, B0, F7, F6, F5 }
+#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0, B3, F4, F1, F0 }
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* CAPS LED */
+#define LED_CAPS_LOCK_PIN B7
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
diff --git a/keyboards/axolstudio/foundation_gamma/foundation_gamma.c b/keyboards/axolstudio/foundation_gamma/foundation_gamma.c
new file mode 100644
index 000000000000..e686d8f321f0
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/foundation_gamma.c
@@ -0,0 +1,17 @@
+/* Copyright 2021 kb-elmo
+ *
+ * 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 .
+ */
+
+#include "foundation_gamma.h"
diff --git a/keyboards/axolstudio/foundation_gamma/foundation_gamma.h b/keyboards/axolstudio/foundation_gamma/foundation_gamma.h
new file mode 100644
index 000000000000..1a96a6d813f6
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/foundation_gamma.h
@@ -0,0 +1,53 @@
+/* Copyright 2021 kb-elmo
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define ____ KC_NO
+
+#define LAYOUT_all( \
+ 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, k213, k114, k115, k116, \
+ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k313, k214, k215, k216, \
+ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
+ k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, k415, \
+ k500, k501, k502, k506, k510, k511, k512, 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, k313, ____, ____, ____ }, \
+ { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k412, ____, ____, k415, ____ }, \
+ { k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, k510, k511, k512, ____, k514, k515, k516 } \
+}
+
+#define LAYOUT_ansi_tsangan( \
+ 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, k313, k214, k215, k216, \
+ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
+ k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k415, \
+ k500, k501, k502, k506, k510, k511, k512, 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, ____, k214, k215, k216 }, \
+ { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____, ____ }, \
+ { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, ____, ____, ____, k415, ____ }, \
+ { k500, k501, k502, ____, ____, ____, k506, ____, ____, ____, k510, k511, k512, ____, k514, k515, k516 } \
+}
diff --git a/keyboards/axolstudio/foundation_gamma/info.json b/keyboards/axolstudio/foundation_gamma/info.json
new file mode 100644
index 000000000000..62214ce80c81
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/info.json
@@ -0,0 +1,191 @@
+{
+ "keyboard_name": "Foundation Gamma",
+ "url": "https://axolstudio.ca/foundation-gamma",
+ "maintainer": "kb-elmo",
+ "layouts": {
+ "LAYOUT_ansi_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.75, "y":0},
+ {"x":10.75, "y":0},
+ {"x":11.75, "y":0},
+ {"x":12.75, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":0, "y":1.5},
+ {"x":1, "y":1.5},
+ {"x":2, "y":1.5},
+ {"x":3, "y":1.5},
+ {"x":4, "y":1.5},
+ {"x":5, "y":1.5},
+ {"x":6, "y":1.5},
+ {"x":7, "y":1.5},
+ {"x":8, "y":1.5},
+ {"x":9, "y":1.5},
+ {"x":10, "y":1.5},
+ {"x":11, "y":1.5},
+ {"x":12, "y":1.5},
+ {"x":13, "y":1.5, "w":2},
+ {"x":15.25, "y":1.5},
+ {"x":16.25, "y":1.5},
+ {"x":17.25, "y":1.5},
+ {"x":0, "y":2.5, "w":1.5},
+ {"x":1.5, "y":2.5},
+ {"x":2.5, "y":2.5},
+ {"x":3.5, "y":2.5},
+ {"x":4.5, "y":2.5},
+ {"x":5.5, "y":2.5},
+ {"x":6.5, "y":2.5},
+ {"x":7.5, "y":2.5},
+ {"x":8.5, "y":2.5},
+ {"x":9.5, "y":2.5},
+ {"x":10.5, "y":2.5},
+ {"x":11.5, "y":2.5},
+ {"x":12.5, "y":2.5},
+ {"x":13.5, "y":2.5, "w":1.5},
+ {"x":15.25, "y":2.5},
+ {"x":16.25, "y":2.5},
+ {"x":17.25, "y":2.5},
+ {"x":0, "y":3.5, "w":1.75},
+ {"x":1.75, "y":3.5},
+ {"x":2.75, "y":3.5},
+ {"x":3.75, "y":3.5},
+ {"x":4.75, "y":3.5},
+ {"x":5.75, "y":3.5},
+ {"x":6.75, "y":3.5},
+ {"x":7.75, "y":3.5},
+ {"x":8.75, "y":3.5},
+ {"x":9.75, "y":3.5},
+ {"x":10.75, "y":3.5},
+ {"x":11.75, "y":3.5},
+ {"x":12.75, "y":3.5, "w":2.25},
+ {"x":0, "y":4.5, "w":2.25},
+ {"x":2.25, "y":4.5},
+ {"x":3.25, "y":4.5},
+ {"x":4.25, "y":4.5},
+ {"x":5.25, "y":4.5},
+ {"x":6.25, "y":4.5},
+ {"x":7.25, "y":4.5},
+ {"x":8.25, "y":4.5},
+ {"x":9.25, "y":4.5},
+ {"x":10.25, "y":4.5},
+ {"x":11.25, "y":4.5},
+ {"x":12.25, "y":4.5, "w":2.75},
+ {"x":16.25, "y":4.5},
+ {"x":0, "y":5.5, "w":1.5},
+ {"x":1.5, "y":5.5},
+ {"x":2.5, "y":5.5, "w":1.5},
+ {"x":4, "y":5.5, "w":7},
+ {"x":11, "y":5.5, "w":1.5},
+ {"x":12.5, "y":5.5},
+ {"x":13.5, "y":5.5, "w":1.5},
+ {"x":15.25, "y":5.5},
+ {"x":16.25, "y":5.5},
+ {"x":17.25, "y":5.5}
+ ]
+ },
+ "LAYOUT_all": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1.25, "y":0},
+ {"x":2.25, "y":0},
+ {"x":3.25, "y":0},
+ {"x":4.25, "y":0},
+ {"x":5.5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.75, "y":0},
+ {"x":10.75, "y":0},
+ {"x":11.75, "y":0},
+ {"x":12.75, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":0, "y":1.5},
+ {"x":1, "y":1.5},
+ {"x":2, "y":1.5},
+ {"x":3, "y":1.5},
+ {"x":4, "y":1.5},
+ {"x":5, "y":1.5},
+ {"x":6, "y":1.5},
+ {"x":7, "y":1.5},
+ {"x":8, "y":1.5},
+ {"x":9, "y":1.5},
+ {"x":10, "y":1.5},
+ {"x":11, "y":1.5},
+ {"x":12, "y":1.5},
+ {"x":13, "y":1.5},
+ {"x":14, "y":1.5},
+ {"x":15.25, "y":1.5},
+ {"x":16.25, "y":1.5},
+ {"x":17.25, "y":1.5},
+ {"x":0, "y":2.5, "w":1.5},
+ {"x":1.5, "y":2.5},
+ {"x":2.5, "y":2.5},
+ {"x":3.5, "y":2.5},
+ {"x":4.5, "y":2.5},
+ {"x":5.5, "y":2.5},
+ {"x":6.5, "y":2.5},
+ {"x":7.5, "y":2.5},
+ {"x":8.5, "y":2.5},
+ {"x":9.5, "y":2.5},
+ {"x":10.5, "y":2.5},
+ {"x":11.5, "y":2.5},
+ {"x":12.5, "y":2.5},
+ {"x":13.5, "y":2.5, "w":1.5},
+ {"x":15.25, "y":2.5},
+ {"x":16.25, "y":2.5},
+ {"x":17.25, "y":2.5},
+ {"x":0, "y":3.5, "w":1.75},
+ {"x":1.75, "y":3.5},
+ {"x":2.75, "y":3.5},
+ {"x":3.75, "y":3.5},
+ {"x":4.75, "y":3.5},
+ {"x":5.75, "y":3.5},
+ {"x":6.75, "y":3.5},
+ {"x":7.75, "y":3.5},
+ {"x":8.75, "y":3.5},
+ {"x":9.75, "y":3.5},
+ {"x":10.75, "y":3.5},
+ {"x":11.75, "y":3.5},
+ {"x":12.75, "y":3.5, "w":2.25},
+ {"x":0, "y":4.5, "w":2.25},
+ {"x":2.25, "y":4.5},
+ {"x":3.25, "y":4.5},
+ {"x":4.25, "y":4.5},
+ {"x":5.25, "y":4.5},
+ {"x":6.25, "y":4.5},
+ {"x":7.25, "y":4.5},
+ {"x":8.25, "y":4.5},
+ {"x":9.25, "y":4.5},
+ {"x":10.25, "y":4.5},
+ {"x":11.25, "y":4.5},
+ {"x":12.25, "y":4.5, "w":1.75},
+ {"x":14, "y":4.5},
+ {"x":16.25, "y":4.5},
+ {"x":0, "y":5.5, "w":1.5},
+ {"x":1.5, "y":5.5},
+ {"x":2.5, "y":5.5, "w":1.5},
+ {"x":4, "y":5.5, "w":7},
+ {"x":11, "y":5.5, "w":1.5},
+ {"x":12.5, "y":5.5},
+ {"x":13.5, "y":5.5, "w":1.5},
+ {"x":15.25, "y":5.5},
+ {"x":16.25, "y":5.5},
+ {"x":17.25, "y":5.5}
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/axolstudio/foundation_gamma/keymaps/default/keymap.c b/keyboards/axolstudio/foundation_gamma/keymaps/default/keymap.c
new file mode 100644
index 000000000000..9d354bd1e1f7
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2021 kb-elmo
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ansi_tsangan(
+ 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_MUTE, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_ansi_tsangan(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/axolstudio/foundation_gamma/keymaps/via/keymap.c b/keyboards/axolstudio/foundation_gamma/keymaps/via/keymap.c
new file mode 100644
index 000000000000..e6cad9a87a4d
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
+/* Copyright 2021 kb-elmo
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/axolstudio/foundation_gamma/keymaps/via/rules.mk b/keyboards/axolstudio/foundation_gamma/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/axolstudio/foundation_gamma/readme.md b/keyboards/axolstudio/foundation_gamma/readme.md
new file mode 100644
index 000000000000..522ddd16c6fe
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/readme.md
@@ -0,0 +1,25 @@
+# Axolstudio Foundation Gamma
+
+![foundation](https://i.imgur.com/wxLv3oGl.jpg)
+
+Seamless, Screwless, Gasket mounted F13 TKL
+
+* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo)
+* Hardware Supported: Axolstudio Foundation Gamma F13 PCB
+* Hardware Availability: https://axolstudio.ca/foundation-gamma
+
+Make example for this keyboard (after setting up your build environment):
+
+ make axolstudio/foundation_gamma:default
+
+Flashing example for this keyboard:
+
+ make axolstudio/foundation_gamma: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
+
+* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
+* **Physical reset button**: Briefly press the button labeled "SW1" on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/axolstudio/foundation_gamma/rules.mk b/keyboards/axolstudio/foundation_gamma/rules.mk
new file mode 100644
index 000000000000..a95ad7bcc0f1
--- /dev/null
+++ b/keyboards/axolstudio/foundation_gamma/rules.mk
@@ -0,0 +1,18 @@
+# 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 = no # 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 = no # Enable N-key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 28bd777f5899c0502cd79fbab5ee8d38fb15dd14 Mon Sep 17 00:00:00 2001
From: ChrisBeswick
Date: Wed, 23 Mar 2022 06:01:55 +0000
Subject: [PATCH 073/221] [Keyboard] Graystudio Apollo80 (#16469)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/gray_studio/apollo80/apollo80.c | 18 ++++
keyboards/gray_studio/apollo80/apollo80.h | 35 ++++++
keyboards/gray_studio/apollo80/config.h | 71 ++++++++++++
keyboards/gray_studio/apollo80/info.json | 102 ++++++++++++++++++
.../apollo80/keymaps/default/config.h | 20 ++++
.../apollo80/keymaps/default/keymap.c | 51 +++++++++
.../gray_studio/apollo80/keymaps/via/config.h | 20 ++++
.../gray_studio/apollo80/keymaps/via/keymap.c | 67 ++++++++++++
.../gray_studio/apollo80/keymaps/via/rules.mk | 1 +
keyboards/gray_studio/apollo80/readme.md | 26 +++++
keyboards/gray_studio/apollo80/rules.mk | 18 ++++
11 files changed, 429 insertions(+)
create mode 100644 keyboards/gray_studio/apollo80/apollo80.c
create mode 100644 keyboards/gray_studio/apollo80/apollo80.h
create mode 100644 keyboards/gray_studio/apollo80/config.h
create mode 100644 keyboards/gray_studio/apollo80/info.json
create mode 100644 keyboards/gray_studio/apollo80/keymaps/default/config.h
create mode 100644 keyboards/gray_studio/apollo80/keymaps/default/keymap.c
create mode 100644 keyboards/gray_studio/apollo80/keymaps/via/config.h
create mode 100644 keyboards/gray_studio/apollo80/keymaps/via/keymap.c
create mode 100644 keyboards/gray_studio/apollo80/keymaps/via/rules.mk
create mode 100644 keyboards/gray_studio/apollo80/readme.md
create mode 100644 keyboards/gray_studio/apollo80/rules.mk
diff --git a/keyboards/gray_studio/apollo80/apollo80.c b/keyboards/gray_studio/apollo80/apollo80.c
new file mode 100644
index 000000000000..842a63f318c6
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/apollo80.c
@@ -0,0 +1,18 @@
+/* Copyright 2020 Demo Studio
+ *
+ * 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 .
+ */
+#include "apollo80.h"
+
+
diff --git a/keyboards/gray_studio/apollo80/apollo80.h b/keyboards/gray_studio/apollo80/apollo80.h
new file mode 100644
index 000000000000..be3a3ee54d81
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/apollo80.h
@@ -0,0 +1,35 @@
+/* Copyright 2020 Demo Studio
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00, K02, K03, K04, K05, K07, K08, K09, K0A, K0B, K0C, K0D,K06, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, KC_NO, KC_NO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
+
diff --git a/keyboards/gray_studio/apollo80/config.h b/keyboards/gray_studio/apollo80/config.h
new file mode 100644
index 000000000000..f00550fb6531
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/config.h
@@ -0,0 +1,71 @@
+/* Copyright 2020 Demo Studio
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4753
+#define PRODUCT_ID 0x3001
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Graystudio
+#define PRODUCT apollo80
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D1, D0, B3, B0, B2, B1 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D4, D6, D2, D3, D5 }
+#define DIODE_DIRECTION COL2ROW
+
+#define LED_CAPS_LOCK_PIN E6
+#define LED_PIN_ON_STATE 0
+
+#define RGB_DI_PIN E2
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 22
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+
+ #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD
+ /*== or choose animations ==*/
+ #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
+#endif
+
diff --git a/keyboards/gray_studio/apollo80/info.json b/keyboards/gray_studio/apollo80/info.json
new file mode 100644
index 000000000000..c0e3efdb8802
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/info.json
@@ -0,0 +1,102 @@
+{
+ "keyboard_name": "apollo 80",
+ "url": "https://graystudio.club/products/gb-space80-apollo",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"K00 (D1,F0)", "x":0, "y":0},
+ {"label":"K02 (D1,F4)", "x":2, "y":0},
+ {"label":"K03 (D1,F5)", "x":3, "y":0},
+ {"label":"K04 (D1,F6)", "x":4, "y":0},
+ {"label":"K05 (D1,F7)", "x":5, "y":0},
+ {"label":"K06 (D1,C7)", "x":6.5, "y":0},
+ {"label":"K07 (D1,C6)", "x":7.5, "y":0},
+ {"label":"K08 (D1,B6)", "x":8.5, "y":0},
+ {"label":"K09 (D1,B5)", "x":9.5, "y":0},
+ {"label":"K0A (D1,B4)", "x":11, "y":0},
+ {"label":"K0B (D1,D7)", "x":12, "y":0},
+ {"label":"K0C (D1,D4)", "x":13, "y":0},
+ {"label":"K0D (D1,D6)", "x":14, "y":0},
+ {"label":"K0E (D1,D2)", "x":15.25, "y":0},
+ {"label":"K0F (D1,D3)", "x":16.25, "y":0},
+ {"label":"K0G (D1,D5)", "x":17.25, "y":0},
+ {"label":"K10 (D0,F0)", "x":0, "y":1.5},
+ {"label":"K11 (D0,F1)", "x":1, "y":1.5},
+ {"label":"K12 (D0,F4)", "x":2, "y":1.5},
+ {"label":"K13 (D0,F5)", "x":3, "y":1.5},
+ {"label":"K14 (D0,F6)", "x":4, "y":1.5},
+ {"label":"K15 (D0,F7)", "x":5, "y":1.5},
+ {"label":"K16 (D0,C7)", "x":6, "y":1.5},
+ {"label":"K17 (D0,C6)", "x":7, "y":1.5},
+ {"label":"K18 (D0,B6)", "x":8, "y":1.5},
+ {"label":"K19 (D0,B5)", "x":9, "y":1.5},
+ {"label":"K1A (D0,B4)", "x":10, "y":1.5},
+ {"label":"K1B (D0,D7)", "x":11, "y":1.5},
+ {"label":"K1C (D0,D4)", "x":12, "y":1.5},
+ {"label":"K1D (D0,D6)", "x":13, "y":1.5},
+ {"label":"K3E (B0,D2)", "x":14, "y":1.5},
+ {"label":"K1E (D0,D2)", "x":15.25, "y":1.5},
+ {"label":"K1F (D0,D3)", "x":16.25, "y":1.5},
+ {"label":"K1G (D0,D5)", "x":17.25, "y":1.5},
+ {"label":"K20 (B3,F0)", "x":0, "y":2.5, "w":1.5},
+ {"label":"K21 (B3,F1)", "x":1.5, "y":2.5},
+ {"label":"K22 (B3,F4)", "x":2.5, "y":2.5},
+ {"label":"K23 (B3,F5)", "x":3.5, "y":2.5},
+ {"label":"K24 (B3,F6)", "x":4.5, "y":2.5},
+ {"label":"K25 (B3,F7)", "x":5.5, "y":2.5},
+ {"label":"K26 (B3,C7)", "x":6.5, "y":2.5},
+ {"label":"K27 (B3,C6)", "x":7.5, "y":2.5},
+ {"label":"K28 (B3,B6)", "x":8.5, "y":2.5},
+ {"label":"K29 (B3,B5)", "x":9.5, "y":2.5},
+ {"label":"K2A (B3,B4)", "x":10.5, "y":2.5},
+ {"label":"K2B (B3,D7)", "x":11.5, "y":2.5},
+ {"label":"K2C (B3,D4)", "x":12.5, "y":2.5},
+ {"label":"K2D (B3,D6)", "x":13.5, "y":2.5, "w":1.5},
+ {"label":"K2E (B3,D2)", "x":15.25, "y":2.5},
+ {"label":"K2F (B3,D3)", "x":16.25, "y":2.5},
+ {"label":"K2G (B3,D5)", "x":17.25, "y":2.5},
+ {"label":"K30 (B0,F0)", "x":0, "y":3.5, "w":1.75},
+ {"label":"K31 (B0,F1)", "x":1.75, "y":3.5},
+ {"label":"K32 (B0,F4)", "x":2.75, "y":3.5},
+ {"label":"K33 (B0,F5)", "x":3.75, "y":3.5},
+ {"label":"K34 (B0,F6)", "x":4.75, "y":3.5},
+ {"label":"K35 (B0,F7)", "x":5.75, "y":3.5},
+ {"label":"K36 (B0,C7)", "x":6.75, "y":3.5},
+ {"label":"K37 (B0,C6)", "x":7.75, "y":3.5},
+ {"label":"K38 (B0,B6)", "x":8.75, "y":3.5},
+ {"label":"K39 (B0,B5)", "x":9.75, "y":3.5},
+ {"label":"K3A (B0,B4)", "x":10.75, "y":3.5},
+ {"label":"K3B (B0,D7)", "x":11.75, "y":3.5},
+ {"label":"K3D (B0,D6)", "x":12.75, "y":3.5, "w":2.25},
+ {"label":"K40 (B2,F0)", "x":0, "y":4.5, "w":1.25},
+ {"label":"K41 (B2,F1)", "x":1.25, "y":4.5},
+ {"label":"K42 (B2,F4)", "x":2.25, "y":4.5},
+ {"label":"K43 (B2,F5)", "x":3.25, "y":4.5},
+ {"label":"K44 (B2,F6)", "x":4.25, "y":4.5},
+ {"label":"K45 (B2,F7)", "x":5.25, "y":4.5},
+ {"label":"K46 (B2,C7)", "x":6.25, "y":4.5},
+ {"label":"K47 (B2,C6)", "x":7.25, "y":4.5},
+ {"label":"K48 (B2,B6)", "x":8.25, "y":4.5},
+ {"label":"K49 (B2,B5)", "x":9.25, "y":4.5},
+ {"label":"K4A (B2,B4)", "x":10.25, "y":4.5},
+ {"label":"K4B (B2,D7)", "x":11.25, "y":4.5},
+ {"label":"K4C (B2,D4)", "x":12.25, "y":4.5, "w":1.75},
+ {"label":"K4D (B2,D6)", "x":14, "y":4.5},
+ {"label":"K4F (B2,D3)", "x":16.25, "y":4.5},
+ {"label":"K50 (B1,F0)", "x":0, "y":5.5, "w":1.25},
+ {"label":"K51 (B1,F1)", "x":1.25, "y":5.5, "w":1.25},
+ {"label":"K52 (B1,F4)", "x":2.5, "y":5.5, "w":1.25},
+ {"label":"K56 (B1,C7)", "x":3.75, "y":5.5, "w":6.25},
+ {"label":"K5A (B1,B4)", "x":10, "y":5.5, "w":1.25},
+ {"label":"K5B (B1,D7)", "x":11.25, "y":5.5, "w":1.25},
+ {"label":"K5C (B1,D4)", "x":12.5, "y":5.5, "w":1.25},
+ {"label":"K5D (B1,D6)", "x":13.75, "y":5.5, "w":1.25},
+ {"label":"K5E (B1,D2)", "x":15.25, "y":5.5},
+ {"label":"K5F (B1,D3)", "x":16.25, "y":5.5},
+ {"label":"K5G (B1,D5)", "x":17.25, "y":5.5}
+ ]
+ }
+ }
+
+}
diff --git a/keyboards/gray_studio/apollo80/keymaps/default/config.h b/keyboards/gray_studio/apollo80/keymaps/default/config.h
new file mode 100644
index 000000000000..68ad650de461
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/keymaps/default/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2020 Demo Studio
+
+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 .
+*/
+
+#pragma once
+
+#define RGBLIGHT_LAYERS
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
diff --git a/keyboards/gray_studio/apollo80/keymaps/default/keymap.c b/keyboards/gray_studio/apollo80/keymaps/default/keymap.c
new file mode 100644
index 000000000000..b4eb52630e94
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/keymaps/default/keymap.c
@@ -0,0 +1,51 @@
+/* Copyright 2020 Demo Studio
+ *
+ * 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 .
+ */
+#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_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT(
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+};
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0,4, HSV_WHITE}
+);
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ my_capslock_layer
+);
+
+void keyboard_post_init_user(void) {
+ // Enable the LED layers
+ rgblight_layers = my_rgb_layers;
+}
+bool led_update_user(led_t led_state) {
+ rgblight_set_layer_state(0, led_state.caps_lock);
+ return true;
+}
diff --git a/keyboards/gray_studio/apollo80/keymaps/via/config.h b/keyboards/gray_studio/apollo80/keymaps/via/config.h
new file mode 100644
index 000000000000..68ad650de461
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/keymaps/via/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2020 Demo Studio
+
+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 .
+*/
+
+#pragma once
+
+#define RGBLIGHT_LAYERS
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
diff --git a/keyboards/gray_studio/apollo80/keymaps/via/keymap.c b/keyboards/gray_studio/apollo80/keymaps/via/keymap.c
new file mode 100644
index 000000000000..27f0a2c2c064
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/keymaps/via/keymap.c
@@ -0,0 +1,67 @@
+/* Copyright 2020 Demo Studio
+ *
+ * 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 .
+ */
+#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_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT(
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [2] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [3] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+};
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0,4, HSV_WHITE}
+);
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+ my_capslock_layer
+);
+
+void keyboard_post_init_user(void) {
+ // Enable the LED layers
+ rgblight_layers = my_rgb_layers;
+}
+bool led_update_user(led_t led_state) {
+ rgblight_set_layer_state(0, led_state.caps_lock);
+ return true;
+}
\ No newline at end of file
diff --git a/keyboards/gray_studio/apollo80/keymaps/via/rules.mk b/keyboards/gray_studio/apollo80/keymaps/via/rules.mk
new file mode 100644
index 000000000000..036bd6d1c3ec
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/gray_studio/apollo80/readme.md b/keyboards/gray_studio/apollo80/readme.md
new file mode 100644
index 000000000000..e70e104ef300
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/readme.md
@@ -0,0 +1,26 @@
+# APOLLO 80
+
+80% / TKL keyboard with a 5.5 degree angle ran by Airpotter. PCB Manufactured by DEMO Studio and Keyboard manufactured by Gray Studio.
+
+- Keyboard Maintainer: [Chris Beswick](https://github.com/ChrisBeswick/)
+- Hardware Supported: Stock / Default Apollo80 PCB
+- Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=110033.0)
+- Group Buy Location: [Graystudio.club](https://graystudio.club/products/gb-space80-apollo)
+
+How to build this firmware using QMK MSYS
+
+ qmk compile -kb gray_studio/apollo80 -km default
+
+Make example for this keyboard (after setting up your build environment using make):
+
+ make gray_studio/apollo80:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## 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**: Bridge the pads labelled 'RE' underneath the Space Bar.
+- **Keycode in layout**: Hold MO(1) and press ESC (If you've changed bindings from the default, this may not be the case)
diff --git a/keyboards/gray_studio/apollo80/rules.mk b/keyboards/gray_studio/apollo80/rules.mk
new file mode 100644
index 000000000000..cb5238f27dcb
--- /dev/null
+++ b/keyboards/gray_studio/apollo80/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
\ No newline at end of file
From a772a7f3a796d29aa830769d7629ed8cd8cb5f0d Mon Sep 17 00:00:00 2001
From: Dan Beste
Date: Wed, 23 Mar 2022 11:33:30 -0500
Subject: [PATCH 074/221] [Keymap] Input Club's Whitefox "True Fox" (#16711)
---
.../whitefox/keymaps/truefox/keymap.c | 60 +++++++++++++++++++
1 file changed, 60 insertions(+)
create mode 100644 keyboards/input_club/whitefox/keymaps/truefox/keymap.c
diff --git a/keyboards/input_club/whitefox/keymaps/truefox/keymap.c b/keyboards/input_club/whitefox/keymaps/truefox/keymap.c
new file mode 100644
index 000000000000..2af54673119c
--- /dev/null
+++ b/keyboards/input_club/whitefox/keymaps/truefox/keymap.c
@@ -0,0 +1,60 @@
+/*
+Copyright 2015 Jun Wako
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ~ │ \ │PrS│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Backs│Del│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Enter │PgU│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │ ↑ │PgD│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │Ctrl│GUI │Alt │ │Alt │Fn │ │ ← │ ↓ │ → │
+ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+ */
+ [0] = LAYOUT_65_ansi_blocker_split_bs(
+ 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_GRV, KC_BSLS, KC_PSCR,
+ 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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Fla│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PrS│ \ │Mut│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Delet│Del│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Enter │Vl+│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │PgU│Vl-│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │Ctrl│GUI │Alt │ │Alt │Fn │ │Hom│PgD│End│
+ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+ */
+ [1] = LAYOUT_65_ansi_blocker_split_bs(
+ QK_BOOT, 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_MUTE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ )
+};
From 74f4682309d23f347d51f2d64481d7f231697133 Mon Sep 17 00:00:00 2001
From: 4pplet
Date: Wed, 23 Mar 2022 17:34:07 +0100
Subject: [PATCH 075/221] [Keyboard] Waffling60 - readme update (#16707)
Co-authored-by: Drashna Jaelre
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet
---
keyboards/4pplet/waffling60/readme.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/keyboards/4pplet/waffling60/readme.md b/keyboards/4pplet/waffling60/readme.md
index bf5fda880387..374b56ffba62 100644
--- a/keyboards/4pplet/waffling60/readme.md
+++ b/keyboards/4pplet/waffling60/readme.md
@@ -11,5 +11,12 @@ Make example for this keyboard (after setting up your build environment):
make 4pplet/waffling60/rev_a:default
make 4pplet/waffling60/rev_b:default
+ make 4pplet/waffling60/rev_c:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+How to enter bootloader (DFU):
+* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
+
+Alternative option if the firmware is already pre-flashed:
+* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
From 92d38c37ec06aba943464a272886c70ba88e5f68 Mon Sep 17 00:00:00 2001
From: Dan Hertz
Date: Wed, 23 Mar 2022 09:34:42 -0700
Subject: [PATCH 076/221] [Keymap] Add dhertz keychron map v0 (#16571)
---
keyboards/keychron/q2/rev_0113/config.h | 2 +-
.../q2/rev_0113/keymaps/dhertz/keymap.c | 94 +++++++++++++++++++
.../q2/rev_0113/keymaps/dhertz/rules.mk | 1 +
users/dhertz/dhertz.c | 9 ++
users/dhertz/dhertz.h | 5 +
5 files changed, 110 insertions(+), 1 deletion(-)
create mode 100644 keyboards/keychron/q2/rev_0113/keymaps/dhertz/keymap.c
create mode 100644 keyboards/keychron/q2/rev_0113/keymaps/dhertz/rules.mk
diff --git a/keyboards/keychron/q2/rev_0113/config.h b/keyboards/keychron/q2/rev_0113/config.h
index 92b9c2e36411..486d3fd3b89e 100644
--- a/keyboards/keychron/q2/rev_0113/config.h
+++ b/keyboards/keychron/q2/rev_0113/config.h
@@ -30,4 +30,4 @@
#define ENCODERS_PAD_B { B5 }
/* Specifies the number of pulses the encoder registers between each detent */
-#define ENCODER_RESOLUTION 2
+#define ENCODER_RESOLUTION 4
diff --git a/keyboards/keychron/q2/rev_0113/keymaps/dhertz/keymap.c b/keyboards/keychron/q2/rev_0113/keymaps/dhertz/keymap.c
new file mode 100644
index 000000000000..16c2a6d7849e
--- /dev/null
+++ b/keyboards/keychron/q2/rev_0113/keymaps/dhertz/keymap.c
@@ -0,0 +1,94 @@
+// Copyright 2022 Dan Hertz (@dhertz)
+// SPDX-License-Identifier: GPL-3.0
+
+#include QMK_KEYBOARD_H
+#include "dhertz.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: Default Layer
+ * ,---------------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|( )|
+ * |---------------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|Del|
+ * |------------------------------------------------------` |---|
+ * |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| |Hom|
+ * |---------------------------------------------------------------|
+ * |Shif| #| Z| X| C| V| B| N| M| ,| .| /|Shift |Up | |
+ * |---------------------------------------------------------------|
+ * |NcCtl| Alt| CTab| LyrSpc |CGv|Alt|CSL|Lef|Dow|Rig|
+ * `---------------------------------------------------------------'
+ */
+ [0] = LAYOUT_iso_68(
+ 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_MUTE,
+ 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_DEL,
+ SRCH_CTL, 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_HOME,
+ KC_LSFT, HSH_TLD, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ NC_CTL, KC_LALT, CMD_TAB_CMD, LYR_SPC, CMD_GRV_CMD, KC_RALT, CMD_SFT_ALT_A, KC_LEFT, KC_DOWN, KC_RIGHT
+ ),
+ /* Layer 1: Special
+ * ,---------------------------------------------------------------.
+ * | §| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |( )|
+ * |---------------------------------------------------------------|
+ * | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------` |---|
+ * | | | | | | | | | |CSL| | | `| | |
+ * |---------------------------------------------------------------|
+ * | | `| | |CAC| | | | | | | | |PgU| |
+ * |---------------------------------------------------------------|
+ * | | | | | | | |Hom|PgD|End|
+ * `---------------------------------------------------------------'
+ */
+ [1] = LAYOUT_iso_68(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F10, KC_F11, KC_TRNS, CMD_SFT_A,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CMD_SFT_L, KC_TRNS, KC_TRNS, KC_NUBS, KC_TRNS, KC_END,
+ KC_TRNS, KC_NUBS, KC_TRNS, KC_TRNS, CMD_ALT_C, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END
+ ),
+};
+
+void keyboard_post_init_user(void) {
+ rgb_matrix_mode(RGB_MATRIX_NONE);
+ rgb_matrix_set_color_all(RGB_BLACK);
+}
+
+uint32_t cancel_cmd(uint32_t trigger_time, void *cb_arg) {
+ if (get_highest_layer(layer_state|default_layer_state) > 0) {
+ return 20;
+ }
+ unregister_code(KC_LCMD);
+ return 0;
+}
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (get_highest_layer(layer_state|default_layer_state) == 0) {
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ } else {
+ if ((get_mods() & MOD_BIT(KC_LCMD)) != MOD_BIT(KC_LCMD)) {
+ register_code(KC_LCMD);
+ defer_exec(20, cancel_cmd, NULL);
+ }
+ if (clockwise) {
+ tap_code(KC_TAB);
+ } else {
+ tap_code16(S(KC_TAB));
+ }
+ }
+ return false;
+}
+
+void rgb_matrix_indicators_kb(void) {
+ switch(get_highest_layer(layer_state|default_layer_state)) {
+ case 1:
+ rgb_matrix_set_color_all(RGB_BLACK);
+ rgb_matrix_set_color_all(25, 25, 112);
+ break;
+ default:
+ rgb_matrix_set_color_all(RGB_BLACK);
+ break;
+ }
+}
diff --git a/keyboards/keychron/q2/rev_0113/keymaps/dhertz/rules.mk b/keyboards/keychron/q2/rev_0113/keymaps/dhertz/rules.mk
new file mode 100644
index 000000000000..199bad85f3c8
--- /dev/null
+++ b/keyboards/keychron/q2/rev_0113/keymaps/dhertz/rules.mk
@@ -0,0 +1 @@
+DEFERRED_EXEC_ENABLE = yes
diff --git a/users/dhertz/dhertz.c b/users/dhertz/dhertz.c
index f33981e15be4..163b1cb6448d 100644
--- a/users/dhertz/dhertz.c
+++ b/users/dhertz/dhertz.c
@@ -1,3 +1,6 @@
+// Copyright 2022 Dan Hertz (@dhertz)
+// SPDX-License-Identifier: GPL-3.0
+
#include "dhertz.h"
// Add reconfigurable functions here, for keymap customization
@@ -63,6 +66,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case CMD_SFT_L:
SEND_STRING(SS_LGUI("L"));
break;
+ case CMD_SFT_A:
+ SEND_STRING(SS_LGUI("A"));
+ break;
+ case CMD_SFT_ALT_A:
+ SEND_STRING(SS_LGUI(SS_LALT("A")));
+ break;
case ISO_COUNTRY_CODE:
SEND_STRING("country_iso_alpha2_code");
break;
diff --git a/users/dhertz/dhertz.h b/users/dhertz/dhertz.h
index aef613f55df1..f980329fa56c 100644
--- a/users/dhertz/dhertz.h
+++ b/users/dhertz/dhertz.h
@@ -1,3 +1,6 @@
+// Copyright 2022 Dan Hertz (@dhertz)
+// SPDX-License-Identifier: GPL-3.0
+
#ifndef USERSPACE
#define USERSPACE
@@ -15,6 +18,8 @@ enum custom_keycodes {
ISO_COUNTRY_CODE,
CMD_TAB_CMD,
CMD_GRV_CMD,
+ CMD_SFT_A,
+ CMD_SFT_ALT_A,
NEW_SAFE_RANGE,
};
From 08aa54b66f0177648c4077bc3e6d4534c8dc4ad7 Mon Sep 17 00:00:00 2001
From: Minna Pallari
Date: Wed, 23 Mar 2022 18:35:14 +0200
Subject: [PATCH 077/221] [Keymap] Xiudi XD75 Finnish/Swedish keymap (#16311)
---
keyboards/xiudi/xd75/keymaps/minna/config.h | 7 ++
keyboards/xiudi/xd75/keymaps/minna/keymap.c | 79 ++++++++++++++++++++
keyboards/xiudi/xd75/keymaps/minna/readme.md | 13 ++++
keyboards/xiudi/xd75/keymaps/minna/rules.mk | 1 +
4 files changed, 100 insertions(+)
create mode 100644 keyboards/xiudi/xd75/keymaps/minna/config.h
create mode 100644 keyboards/xiudi/xd75/keymaps/minna/keymap.c
create mode 100644 keyboards/xiudi/xd75/keymaps/minna/readme.md
create mode 100644 keyboards/xiudi/xd75/keymaps/minna/rules.mk
diff --git a/keyboards/xiudi/xd75/keymaps/minna/config.h b/keyboards/xiudi/xd75/keymaps/minna/config.h
new file mode 100644
index 000000000000..27975f0e240b
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/minna/config.h
@@ -0,0 +1,7 @@
+// Copyright 2022 Minna Pallari (@pallarim)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+// place overrides here
+#define UNICODE_SELECTED_MODES UC_WINC, UC_LNX, UC_MAC
\ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/minna/keymap.c b/keyboards/xiudi/xd75/keymaps/minna/keymap.c
new file mode 100644
index 000000000000..ef3f400bc18c
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/minna/keymap.c
@@ -0,0 +1,79 @@
+// Copyright 2022 Minna Pallari (@pallarim)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+#include "keymap_finnish.h"
+
+enum unicode_names {
+ BEER,
+ BEERS
+};
+
+enum custom_keycodes {
+ QMKBEST = SAFE_RANGE,
+};
+
+const uint32_t PROGMEM unicode_map[] = {
+ [BEER] = 0x1F37A, // 🍺
+ [BEERS] = 0x1F37B // 🍻
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+ case QMKBEST:
+ SEND_STRING(SS_LGUI("r") SS_DELAY(500) "calc\n" SS_DELAY(1000) "1337");
+ break;
+ }
+ }
+ return true;
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ESC│ § | 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │BS │
+ * ├───|───|───|───|───|───|───|───|───|───|───|───|───|───|───|
+ * │TAB | Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
+ * ├───|───|───|───|───|───|───|───|───|───|───|───|───|───|ENT|
+ * │CPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
+ * ├───|───|───|───|───|───|───|───|───|───|───|───|───|───|───|
+ * │SFT│ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │SFT|UP | │
+ * ├───|───|───|───|───|───|───|───|───|───|───|───|───|───|───|
+ * │CTR│FN │WIN│ALT│BER│ SPC │ SPC │AGR│MNU│CTR│LF │DN │RG │
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+
+ [0] = LAYOUT_ortho_5x15(
+ KC_ESC, FI_SECT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, FI_PLUS, FI_ACUT, KC_BSPC,
+ KC_TAB, KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FI_ARNG, FI_DIAE, KC_ENT,
+ KC_CAPS, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, FI_ODIA, FI_ADIA, FI_QUOT, KC_NO,
+ KC_LSFT, FI_LABK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, FI_MINS, KC_RSFT, KC_UP, KC_NO,
+ KC_LCTL, MO(1), KC_LGUI, KC_LALT, XP(BEER, BEERS), KC_SPC, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+/*
+ * ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Mute│CAL| F1│F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│DEL│
+ * ├────|───|───|───|───|───|───|───|───|───|───|───|───|───|───|
+ * │MSel |My │Ma │RGB│RGB│Cal│ 7 │ 8 │ 9 │ - │ │Prn│SL │ P │
+ * │ |Cmp│il │HUD│HUI│ │ │ │ │ │ │Scr│CK │ a │
+ * ├────|───|───|───|───|───|───|───|───|───|───|───|───|───| u |
+ * │MPrev │ │ │RGB│RGB│ │ 4 │ 5 │ 6 │ + │RST│ │ │ s │
+ * │ │NXT│STP│SAD│SAI│PLY│ │ │ │ │ │ │ │ e │
+ * ├────|───|───|───|───|───|───|───|───|───|───|───|───|───|───|
+ * │Vo- │Mte│Vo+│App│RGB│RGB│ │ 1 │ 2 │ 3 │ENT│ │ | | │
+ * │ │ │ │ │VAD│VAI│ │ 1 │ 2 │ 3 │ENT│ │ | | │
+ * ├────|───|───|───|───|───|───|───|───|───|───|───|───|───|───|
+ * │ │FN │RGB│ │RMR│RGB_MOD│ 0 │ . │ENT│ENT│FN │UCR│UCM│
+ * └────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+
+ [1] = LAYOUT_ortho_5x15(
+ KC_MUTE, QMKBEST, 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_MSEL, KC_NO, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_CALC, KC_P7, KC_P8, KC_P9, KC_MINS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_MPRV, KC_NO, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_MPLY, KC_P4, KC_P5, KC_P6, KC_PLUS, RESET, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, MO(1), RGB_TOG, KC_NO, RGB_RMOD,RGB_MOD, KC_NO, KC_P0, KC_NO, KC_PDOT, KC_PENT, KC_PENT, MO(1), UC_RMOD, UC_MOD)
+};
+
diff --git a/keyboards/xiudi/xd75/keymaps/minna/readme.md b/keyboards/xiudi/xd75/keymaps/minna/readme.md
new file mode 100644
index 000000000000..0291fd3a85a4
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/minna/readme.md
@@ -0,0 +1,13 @@
+# XD75 Fi/Sv board with some extras
+
+## Keymap
+
+### Base & Function Layer
+
+![Base layer](https://i.imgur.com/x8VFgYg.png)
+
+## Build
+
+To build the default keymap, simply run:
+
+ make xiudi/xd75/minna
diff --git a/keyboards/xiudi/xd75/keymaps/minna/rules.mk b/keyboards/xiudi/xd75/keymaps/minna/rules.mk
new file mode 100644
index 000000000000..0517619ed13f
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/minna/rules.mk
@@ -0,0 +1 @@
+UNICODEMAP_ENABLE = yes
\ No newline at end of file
From 4a3b4104feb7f0948a8b9f97b39534fc68c62e73 Mon Sep 17 00:00:00 2001
From: Drashna Jaelre
Date: Wed, 23 Mar 2022 09:38:51 -0700
Subject: [PATCH 078/221] [Bug] Fix unused variable error when using ChibiOS
Bitbang serial driver (#16709)
---
platforms/chibios/drivers/serial.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/platforms/chibios/drivers/serial.c b/platforms/chibios/drivers/serial.c
index 6db5d8525067..bb7b3c05547c 100644
--- a/platforms/chibios/drivers/serial.c
+++ b/platforms/chibios/drivers/serial.c
@@ -171,7 +171,8 @@ void interrupt_handler(void *arg) {
checksum_computed += split_trans_initiator2target_buffer(trans)[i];
}
checksum_computed ^= 7;
- uint8_t checksum_received = serial_read_byte();
+
+ serial_read_byte();
sync_send();
// wait for the sync to finish sending
From 55b3b2b8487ff9008806d41bd77a10fc796c4103 Mon Sep 17 00:00:00 2001
From: kopibeng <52724926+kopibeng@users.noreply.github.com>
Date: Thu, 24 Mar 2022 02:42:54 +0800
Subject: [PATCH 079/221] [Keyboard] Add support for XT60 (#16708)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/kopibeng/xt60/config.h | 81 +++++++++++++++++++
keyboards/kopibeng/xt60/info.json | 81 +++++++++++++++++++
.../kopibeng/xt60/keymaps/default/keymap.c | 57 +++++++++++++
keyboards/kopibeng/xt60/keymaps/via/keymap.c | 57 +++++++++++++
keyboards/kopibeng/xt60/keymaps/via/rules.mk | 2 +
keyboards/kopibeng/xt60/readme.md | 21 +++++
keyboards/kopibeng/xt60/rules.mk | 18 +++++
keyboards/kopibeng/xt60/xt60.c | 17 ++++
keyboards/kopibeng/xt60/xt60.h | 55 +++++++++++++
9 files changed, 389 insertions(+)
create mode 100644 keyboards/kopibeng/xt60/config.h
create mode 100644 keyboards/kopibeng/xt60/info.json
create mode 100644 keyboards/kopibeng/xt60/keymaps/default/keymap.c
create mode 100644 keyboards/kopibeng/xt60/keymaps/via/keymap.c
create mode 100644 keyboards/kopibeng/xt60/keymaps/via/rules.mk
create mode 100644 keyboards/kopibeng/xt60/readme.md
create mode 100644 keyboards/kopibeng/xt60/rules.mk
create mode 100644 keyboards/kopibeng/xt60/xt60.c
create mode 100644 keyboards/kopibeng/xt60/xt60.h
diff --git a/keyboards/kopibeng/xt60/config.h b/keyboards/kopibeng/xt60/config.h
new file mode 100644
index 000000000000..30aff4955e3f
--- /dev/null
+++ b/keyboards/kopibeng/xt60/config.h
@@ -0,0 +1,81 @@
+/* Copyright 2021 Samuel Lu
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4B50 // 'KP' kopibeng
+#define PRODUCT_ID 0x0600
+#define DEVICE_VER 0x0002
+#define MANUFACTURER kopibeng
+#define PRODUCT XT60
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F7, F4, D0, B3, B7 }
+#define MATRIX_COL_PINS { C7, F5, F1, F0, C6, B6, B5, B4, D7, D6, D5, D3, D2, D1 }
+
+#define LED_CAPS_LOCK_PIN D4
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN F6
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 14
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+ #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
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* 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
\ No newline at end of file
diff --git a/keyboards/kopibeng/xt60/info.json b/keyboards/kopibeng/xt60/info.json
new file mode 100644
index 000000000000..fbd8904a7fa5
--- /dev/null
+++ b/keyboards/kopibeng/xt60/info.json
@@ -0,0 +1,81 @@
+{
+ "keyboard_name": "XT60",
+ "maintainer": "Kopibeng",
+ "url": "",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ { "label": "0,0", "x": 0, "y": 0 },
+ { "label": "0,1", "x": 1, "y": 0 },
+ { "label": "0,2", "x": 2, "y": 0 },
+ { "label": "0,3", "x": 3, "y": 0 },
+ { "label": "0,4", "x": 4, "y": 0 },
+ { "label": "0,5", "x": 5, "y": 0 },
+ { "label": "0,6", "x": 6, "y": 0 },
+ { "label": "0,7", "x": 7, "y": 0 },
+ { "label": "0,8", "x": 8, "y": 0 },
+ { "label": "0,9", "x": 9, "y": 0 },
+ { "label": "0,A", "x": 10, "y": 0 },
+ { "label": "0,B", "x": 11, "y": 0 },
+ { "label": "0,C", "x": 12, "y": 0 },
+ { "label": "0,D", "x": 13, "y": 0 },
+ { "label": "1,D", "x": 14, "y": 0 },
+
+ { "label": "1,0", "w": 1.5, "x": 0, "y": 1 },
+ { "label": "1,1", "x": 1.5, "y": 1 },
+ { "label": "1,2", "x": 2.5, "y": 1 },
+ { "label": "1,3", "x": 3.5, "y": 1 },
+ { "label": "1,4", "x": 4.5, "y": 1 },
+ { "label": "1,5", "x": 5.5, "y": 1 },
+ { "label": "1,6", "x": 6.5, "y": 1 },
+ { "label": "1,7", "x": 7.5, "y": 1 },
+ { "label": "1,8", "x": 8.5, "y": 1 },
+ { "label": "1,9", "x": 9.5, "y": 1 },
+ { "label": "1,A", "x": 10.5, "y": 1 },
+ { "label": "1,B", "x": 11.5, "y": 1 },
+ { "label": "1,C", "x": 12.5, "y": 1 },
+ { "label": "2,C", "w": 1.5, "x": 13.5, "y": 1 },
+
+ { "label": "2,0", "w": 1.75, "x": 0, "y": 2 },
+ { "label": "2,1", "x": 1.75, "y": 2 },
+ { "label": "2,2", "x": 2.75, "y": 2 },
+ { "label": "2,3", "x": 3.75, "y": 2 },
+ { "label": "2,4", "x": 4.75, "y": 2 },
+ { "label": "2,5", "x": 5.75, "y": 2 },
+ { "label": "2,6", "x": 6.75, "y": 2 },
+ { "label": "2,7", "x": 7.75, "y": 2 },
+ { "label": "2,8", "x": 8.75, "y": 2 },
+ { "label": "2,9", "x": 9.75, "y": 2 },
+ { "label": "2,A", "x": 10.75, "y": 2 },
+ { "label": "2,B", "x": 11.75, "y": 2 },
+ { "label": "2,D", "w": 2.25, "x": 12.75, "y": 2 },
+
+ { "label": "3,0", "w": 1.25, "x": 0, "y": 3 },
+ { "label": "3,1", "x": 1.25, "y": 3 },
+ { "label": "3,2", "x": 2.25, "y": 3 },
+ { "label": "3,3", "x": 3.25, "y": 3 },
+ { "label": "3,4", "x": 4.25, "y": 3 },
+ { "label": "3,5", "x": 5.25, "y": 3 },
+ { "label": "3,6", "x": 6.25, "y": 3 },
+ { "label": "3,7", "x": 7.25, "y": 3 },
+ { "label": "3,8", "x": 8.25, "y": 3 },
+ { "label": "3,9", "x": 9.25, "y": 3 },
+ { "label": "3,A", "x": 10.25, "y": 3 },
+ { "label": "3,B", "x": 11.25, "y": 3 },
+ { "label": "3,C", "w": 1.75, "x": 12.25, "y": 3 },
+ { "label": "3,D", "x": 14, "y": 3 },
+
+ { "label": "4,0", "w": 1.25, "x": 0, "y": 4 },
+ { "label": "4,1", "w": 1.25, "x": 1.25, "y": 4 },
+ { "label": "4,2", "w": 1.25, "x": 2.5, "y": 4 },
+ { "label": "4,4", "w": 2.25, "x": 3.75, "y": 4 },
+ { "label": "4,6", "w": 1.25, "x": 6, "y": 4 },
+ { "label": "4,8", "w": 2.75, "x": 7.25, "y": 4 },
+ { "label": "4,A", "w": 1.25, "x": 10, "y": 4 },
+ { "label": "4,B", "w": 1.25, "x": 11.25, "y": 4 },
+ { "label": "4,C", "w": 1.25, "x": 12.5, "y": 4 },
+ { "label": "4,D", "w": 1.25, "x": 13.75, "y": 4 }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/kopibeng/xt60/keymaps/default/keymap.c b/keyboards/kopibeng/xt60/keymaps/default/keymap.c
new file mode 100644
index 000000000000..337ec2836f8e
--- /dev/null
+++ b/keyboards/kopibeng/xt60/keymaps/default/keymap.c
@@ -0,0 +1,57 @@
+/* Copyright 2021 Samuel Lu
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ // Default layer
+ [0] = LAYOUT_all(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(2), KC_RALT, MO(1), KC_RCTL
+ ),
+
+ // Fn1 Layer
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ // Fn2 Layer
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ // Fn3 Layer
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
+
diff --git a/keyboards/kopibeng/xt60/keymaps/via/keymap.c b/keyboards/kopibeng/xt60/keymaps/via/keymap.c
new file mode 100644
index 000000000000..337ec2836f8e
--- /dev/null
+++ b/keyboards/kopibeng/xt60/keymaps/via/keymap.c
@@ -0,0 +1,57 @@
+/* Copyright 2021 Samuel Lu
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ // Default layer
+ [0] = LAYOUT_all(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(2), KC_RALT, MO(1), KC_RCTL
+ ),
+
+ // Fn1 Layer
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ // Fn2 Layer
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ // Fn3 Layer
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
+
diff --git a/keyboards/kopibeng/xt60/keymaps/via/rules.mk b/keyboards/kopibeng/xt60/keymaps/via/rules.mk
new file mode 100644
index 000000000000..43061db1dd46
--- /dev/null
+++ b/keyboards/kopibeng/xt60/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/kopibeng/xt60/readme.md b/keyboards/kopibeng/xt60/readme.md
new file mode 100644
index 000000000000..177b22be4c76
--- /dev/null
+++ b/keyboards/kopibeng/xt60/readme.md
@@ -0,0 +1,21 @@
+# XT60
+
+![XT60](https://i.imgur.com/n1arBEw.png)
+
+A QMK-powered, VIA-enabled universal 60% PCB with support for ANSI/ISO layouts, split Backspace, split Right Shift, stepped Caps Lock, 6.25U/7U bottom row, split Spacebar and RGB underglow.
+
+* Keyboard Maintainer: kopibeng
+* Hardware Supported: A 60% keyboard with ATMEGA32U4
+* Hardware Availability: N/A
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kopibeng/xt60:via
+
+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
+
+* Physical reset button: Press the RESET switch on top side of PCB.
+* Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard.
+* Keycode reset: Press the RESET keycode (default: MO(1) + R keys) in layout if available.
\ No newline at end of file
diff --git a/keyboards/kopibeng/xt60/rules.mk b/keyboards/kopibeng/xt60/rules.mk
new file mode 100644
index 000000000000..72ab2800c56c
--- /dev/null
+++ b/keyboards/kopibeng/xt60/rules.mk
@@ -0,0 +1,18 @@
+# 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 = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
\ No newline at end of file
diff --git a/keyboards/kopibeng/xt60/xt60.c b/keyboards/kopibeng/xt60/xt60.c
new file mode 100644
index 000000000000..db8993d58b49
--- /dev/null
+++ b/keyboards/kopibeng/xt60/xt60.c
@@ -0,0 +1,17 @@
+/* Copyright 2021 Samuel Lu
+ *
+ * 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 .
+ */
+
+#include "xt60.h"
\ No newline at end of file
diff --git a/keyboards/kopibeng/xt60/xt60.h b/keyboards/kopibeng/xt60/xt60.h
new file mode 100644
index 000000000000..0e4b4ea2aa74
--- /dev/null
+++ b/keyboards/kopibeng/xt60/xt60.h
@@ -0,0 +1,55 @@
+/* Copyright 2021 Samuel Lu
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ │1D │ 2u Backspace
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │ │ │
+ * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
+ * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │
+ * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌─┴───┴────┤
+ * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift
+ * └────────┘ ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘
+ * │40 │41 │42 │44 │46 │48 │4A │4B │4C │4D │ 2.25u/1.25u/2.75u Split Spacebar
+ * └────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘
+ * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
+ * │40 │41 │42 │46 │4A │4B │4C │4D │ ANSI 6.25u
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+ * │40 │41 │42 │46 │4B │4C │4D │ 7u/WKL
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+ */
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K44, K46, K48, K4A, K4B, K4C, K4D \
+) { \
+ {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D}, \
+ {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D}, \
+ {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D}, \
+ {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D}, \
+ {K40, K41, K42, ___, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D} \
+}
From e335d62eda6f9c295c1717cf7511dfb74a436f03 Mon Sep 17 00:00:00 2001
From: jack <0x6A73@pm.me>
Date: Wed, 23 Mar 2022 23:23:40 -0600
Subject: [PATCH 080/221] [Keyboard] Add keyboard level encoder function for
GMMK Pro (#16721)
---
keyboards/gmmk/pro/pro.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/keyboards/gmmk/pro/pro.c b/keyboards/gmmk/pro/pro.c
index 816d089a585d..6aed1d6e189d 100644
--- a/keyboards/gmmk/pro/pro.c
+++ b/keyboards/gmmk/pro/pro.c
@@ -14,3 +14,17 @@
* along with this program. If not, see .
*/
#include "pro.h"
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) {
+ return false;
+ }
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ return false;
+}
+#endif
From 980a1b05629e351d19ff9ddc1bb5a1d38bab6414 Mon Sep 17 00:00:00 2001
From: Nathan Johnson
Date: Thu, 24 Mar 2022 00:24:02 -0500
Subject: [PATCH 081/221] [Keymap] ergodox: updating
osx_whiskey_tango_foxtrot_capslock to use process_record_user (#16715)
---
.../keymap.c | 45 ++++++++++++++++++-
.../rules.mk | 2 +
2 files changed, 46 insertions(+), 1 deletion(-)
create mode 100644 layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk
diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
index 54e1183e9f70..2285aa4a94d5 100644
--- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
+++ b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
@@ -15,6 +15,10 @@ enum layer_names {
typedef enum onoff_t {OFF, ON} onoff;
+#define caps_led_on ergodox_right_led_2_on
+#define caps_led_off ergodox_right_led_2_off
+
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
@@ -123,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// MEDIA AND TENKEY
[MDIA] = LAYOUT_ergodox(
- KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
+ QK_BOOT, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
@@ -142,6 +146,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS
),
};
+#ifndef NO_FAKE_CAPS
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ static onoff caps_state = OFF;
+
+ switch (keycode) {
+ case KC_CAPS:
+ if (record->event.pressed) {
+ if (caps_state == OFF) {
+ caps_led_on();
+ caps_state = ON;
+ } else {
+ caps_led_off();
+ caps_state = OFF;
+ }
+ }
+ break;
+ default:
+ if (keycode < KC_A || keycode > KC_Z) {
+ // This isn't an alpha or a KC_CAPS, continue on as usual.
+ return true;
+ }
+ if (record->event.pressed) {
+ bool shifted = (caps_state == ON && get_mods() == 0);
+ if (shifted) {
+ register_code(KC_LSFT);
+ }
+ register_code(keycode);
+ if (shifted) {
+ unregister_code(KC_LSFT);
+ }
+ } else {
+ unregister_code(keycode);
+ }
+ break;
+ }
+ // If we get here, we've already handled the keypresses.
+ return false;
+}
+#endif
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk
new file mode 100644
index 000000000000..e8242c269550
--- /dev/null
+++ b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk
@@ -0,0 +1,2 @@
+# uncomment below to disable fake capslock
+# OPT_DEFS += -DNO_FAKE_CAPS
From f7a5ec2483ef05d22b6604f0da1447cea5281243 Mon Sep 17 00:00:00 2001
From: Carlo Sala
Date: Thu, 24 Mar 2022 17:42:48 +0100
Subject: [PATCH 082/221] update
kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala keymap (#16725)
---
.../kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h | 1 +
.../kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk | 1 +
2 files changed, 2 insertions(+)
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h
index b8dea6a76a65..997e4015deb3 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/config.h
@@ -3,4 +3,5 @@
#pragma once
+#define TAPPING_TERM 150
#define UNICODE_SELECTED_MODES UC_LNX
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk
index fd581f26db42..12dd57c5576b 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala/rules.mk
@@ -1,2 +1,3 @@
MOUSEKEY_ENABLE = no
+NKRO_ENABLE = yes
UNICODE_ENABLE = yes
From dc9eb21332b0fc274cc69358032dc923da6dc306 Mon Sep 17 00:00:00 2001
From: Simon <47527944+Frooastside@users.noreply.github.com>
Date: Thu, 24 Mar 2022 19:08:22 +0100
Subject: [PATCH 083/221] add the ability to change the pwm frequency for the
IS31FL3737B (#16718)
---
docs/feature_rgb_matrix.md | 1 +
drivers/led/issi/is31fl3737.c | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 87dbc5f78062..a8793be328e9 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -171,6 +171,7 @@ Configure the hardware via your `config.h`:
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
+| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 |
| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c
index 9f2a13de4517..bce0c34b2cbd 100644
--- a/drivers/led/issi/is31fl3737.c
+++ b/drivers/led/issi/is31fl3737.c
@@ -57,6 +57,10 @@
# define ISSI_PERSISTENCE 0
#endif
+#ifndef ISSI_PWM_FREQUENCY
+# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3737B only
+#endif
+
#ifndef ISSI_SWPULLUP
# define ISSI_SWPULLUP PUR_0R
#endif
@@ -159,7 +163,7 @@ void IS31FL3737_init(uint8_t addr) {
// Set global current to maximum.
IS31FL3737_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF);
// Disable software shutdown.
- IS31FL3737_write_register(addr, ISSI_REG_CONFIGURATION, 0x01);
+ IS31FL3737_write_register(addr, ISSI_REG_CONFIGURATION, ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
// Wait 10ms to ensure the device has woken up.
wait_ms(10);
From efc9c525b19b33c6e09057218ea64f07f45f9555 Mon Sep 17 00:00:00 2001
From: Erovia
Date: Thu, 24 Mar 2022 20:13:40 +0000
Subject: [PATCH 084/221] CLI: Add 'via2json' subcommand (#16468)
---
docs/cli_commands.md | 17 ++++
lib/python/qmk/cli/__init__.py | 1 +
lib/python/qmk/cli/via2json.py | 145 ++++++++++++++++++++++++++++++++
lib/python/qmk/json_encoders.py | 8 +-
lib/python/qmk/keymap.py | 7 +-
5 files changed, 176 insertions(+), 2 deletions(-)
create mode 100755 lib/python/qmk/cli/via2json.py
diff --git a/docs/cli_commands.md b/docs/cli_commands.md
index 93af906b8a3c..463abcef12f2 100644
--- a/docs/cli_commands.md
+++ b/docs/cli_commands.md
@@ -335,6 +335,23 @@ This command cleans up the `.build` folder. If `--all` is passed, any .hex or .b
qmk clean [-a]
```
+## `qmk via2json`
+
+This command an generate a keymap.json from a VIA keymap backup. Both the layers and the macros are converted, enabling users to easily move away from a VIA-enabled firmware without writing any code or reimplementing their keymaps in QMK Configurator.
+
+**Usage**:
+
+```
+qmk via2json -kb KEYBOARD [-l LAYOUT] [-km KEYMAP] [-o OUTPUT] filename
+```
+
+**Example:**
+
+```
+$ qmk via2json -kb ai03/polaris -o polaris_keymap.json polaris_via_backup.json
+Ψ Wrote keymap to /home/you/qmk_firmware/polaris_keymap.json
+```
+
---
# Developer Commands
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py
index c51eece95596..5f65e677e502 100644
--- a/lib/python/qmk/cli/__init__.py
+++ b/lib/python/qmk/cli/__init__.py
@@ -69,6 +69,7 @@
'qmk.cli.new.keymap',
'qmk.cli.pyformat',
'qmk.cli.pytest',
+ 'qmk.cli.via2json',
]
diff --git a/lib/python/qmk/cli/via2json.py b/lib/python/qmk/cli/via2json.py
new file mode 100755
index 000000000000..6edc9dfbe5ed
--- /dev/null
+++ b/lib/python/qmk/cli/via2json.py
@@ -0,0 +1,145 @@
+"""Generate a keymap.c from a configurator export.
+"""
+import json
+import re
+
+from milc import cli
+
+import qmk.keyboard
+import qmk.path
+from qmk.info import info_json
+from qmk.json_encoders import KeymapJSONEncoder
+from qmk.commands import parse_configurator_json, dump_lines
+from qmk.keymap import generate_json, list_keymaps, locate_keymap, parse_keymap_c
+
+
+def _find_via_layout_macro(keyboard):
+ keymap_layout = None
+ if 'via' in list_keymaps(keyboard):
+ keymap_path = locate_keymap(keyboard, 'via')
+ if keymap_path.suffix == '.json':
+ keymap_layout = parse_configurator_json(keymap_path)['layout']
+ else:
+ keymap_layout = parse_keymap_c(keymap_path)['layers'][0]['layout']
+ return keymap_layout
+
+
+def _convert_macros(via_macros):
+ via_macros = list(filter(lambda f: bool(f), via_macros))
+ if len(via_macros) == 0:
+ return list()
+ split_regex = re.compile(r'(}\,)|(\,{)')
+ macros = list()
+ for via_macro in via_macros:
+ # Split VIA macro to its elements
+ macro = split_regex.split(via_macro)
+ # Remove junk elements (None, '},' and ',{')
+ macro = list(filter(lambda f: False if f in (None, '},', ',{') else True, macro))
+ macro_data = list()
+ for m in macro:
+ if '{' in m or '}' in m:
+ # Found keycode(s)
+ keycodes = m.split(',')
+ # Remove whitespaces and curly braces from around keycodes
+ keycodes = list(map(lambda s: s.strip(' {}'), keycodes))
+ # Remove the KC prefix
+ keycodes = list(map(lambda s: s.replace('KC_', ''), keycodes))
+ macro_data.append({"action": "tap", "keycodes": keycodes})
+ else:
+ # Found text
+ macro_data.append(m)
+ macros.append(macro_data)
+
+ return macros
+
+
+def _fix_macro_keys(keymap_data):
+ macro_no = re.compile(r'MACRO0?([0-9]{1,2})')
+ for i in range(0, len(keymap_data)):
+ for j in range(0, len(keymap_data[i])):
+ kc = keymap_data[i][j]
+ m = macro_no.match(kc)
+ if m:
+ keymap_data[i][j] = f'MACRO_{m.group(1)}'
+ return keymap_data
+
+
+def _via_to_keymap(via_backup, keyboard_data, keymap_layout):
+ # Check if passed LAYOUT is correct
+ layout_data = keyboard_data['layouts'].get(keymap_layout)
+ if not layout_data:
+ cli.log.error(f'LAYOUT macro {keymap_layout} is not a valid one for keyboard {cli.args.keyboard}!')
+ exit(1)
+
+ layout_data = layout_data['layout']
+ sorting_hat = list()
+ for index, data in enumerate(layout_data):
+ sorting_hat.append([index, data['matrix']])
+
+ sorting_hat.sort(key=lambda k: (k[1][0], k[1][1]))
+
+ pos = 0
+ for row_num in range(0, keyboard_data['matrix_size']['rows']):
+ for col_num in range(0, keyboard_data['matrix_size']['cols']):
+ if pos >= len(sorting_hat) or sorting_hat[pos][1][0] != row_num or sorting_hat[pos][1][1] != col_num:
+ sorting_hat.insert(pos, [None, [row_num, col_num]])
+ else:
+ sorting_hat.append([None, [row_num, col_num]])
+ pos += 1
+
+ keymap_data = list()
+ for layer in via_backup['layers']:
+ pos = 0
+ layer_data = list()
+ for key in layer:
+ if sorting_hat[pos][0] is not None:
+ layer_data.append([sorting_hat[pos][0], key])
+ pos += 1
+ layer_data.sort()
+ layer_data = [kc[1] for kc in layer_data]
+ keymap_data.append(layer_data)
+
+ return keymap_data
+
+
+@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to')
+@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
+@cli.argument('filename', type=qmk.path.FileType('r'), arg_only=True, help='VIA Backup JSON file')
+@cli.argument('-kb', '--keyboard', type=qmk.keyboard.keyboard_folder, completer=qmk.keyboard.keyboard_completer, arg_only=True, required=True, help='The keyboard\'s name')
+@cli.argument('-km', '--keymap', arg_only=True, default='via2json', help='The keymap\'s name')
+@cli.argument('-l', '--layout', arg_only=True, help='The keymap\'s layout')
+@cli.subcommand('Convert a VIA backup json to keymap.json format.')
+def via2json(cli):
+ """Convert a VIA backup json to keymap.json format.
+
+ This command uses the `qmk.keymap` module to generate a keymap.json from a VIA backup json. The generated keymap is written to stdout, or to a file if -o is provided.
+ """
+ # Find appropriate layout macro
+ keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(cli.args.keyboard)
+ if not keymap_layout:
+ cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.")
+ exit(1)
+
+ # Load the VIA backup json
+ with cli.args.filename.open('r') as fd:
+ via_backup = json.load(fd)
+
+ # Generate keyboard metadata
+ keyboard_data = info_json(cli.args.keyboard)
+
+ # Get keycode array
+ keymap_data = _via_to_keymap(via_backup, keyboard_data, keymap_layout)
+
+ # Convert macros
+ macro_data = list()
+ if via_backup.get('macros'):
+ macro_data = _convert_macros(via_backup['macros'])
+
+ # Replace VIA macro keys with JSON keymap ones
+ keymap_data = _fix_macro_keys(keymap_data)
+
+ # Generate the keymap.json
+ keymap_json = generate_json(cli.args.keymap, cli.args.keyboard, keymap_layout, keymap_data, macro_data)
+
+ keymap_lines = [json.dumps(keymap_json, cls=KeymapJSONEncoder)]
+ dump_lines(cli.args.output, keymap_lines, cli.args.quiet)
diff --git a/lib/python/qmk/json_encoders.py b/lib/python/qmk/json_encoders.py
index 72e91973a320..40a5c1dea8e7 100755
--- a/lib/python/qmk/json_encoders.py
+++ b/lib/python/qmk/json_encoders.py
@@ -146,7 +146,13 @@ def encode_list(self, obj):
if key == 'JSON_NEWLINE':
layer.append([])
else:
- layer[-1].append(f'"{key}"')
+ if isinstance(key, dict):
+ # We have a macro
+
+ # TODO: Add proper support for nicely formatting keymap.json macros
+ layer[-1].append(f'{self.encode(key)}')
+ else:
+ layer[-1].append(f'"{key}"')
layer = [f"{self.indent_str*indent_level}{', '.join(row)}" for row in layer]
diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py
index 00b5a78a5ac5..ca5be0959b81 100644
--- a/lib/python/qmk/keymap.py
+++ b/lib/python/qmk/keymap.py
@@ -158,7 +158,7 @@ def is_keymap_dir(keymap, c=True, json=True, additional_files=None):
return True
-def generate_json(keymap, keyboard, layout, layers):
+def generate_json(keymap, keyboard, layout, layers, macros=None):
"""Returns a `keymap.json` for the specified keyboard, layout, and layers.
Args:
@@ -173,11 +173,16 @@ def generate_json(keymap, keyboard, layout, layers):
layers
An array of arrays describing the keymap. Each item in the inner array should be a string that is a valid QMK keycode.
+
+ macros
+ A sequence of strings containing macros to implement for this keyboard.
"""
new_keymap = template_json(keyboard)
new_keymap['keymap'] = keymap
new_keymap['layout'] = layout
new_keymap['layers'] = layers
+ if macros:
+ new_keymap['macros'] = macros
return new_keymap
From 53a88af0360c67677d3ffb9eac0d046a59baa141 Mon Sep 17 00:00:00 2001
From: Anton <14187674+antosha417@users.noreply.github.com>
Date: Sat, 26 Mar 2022 03:37:05 +0300
Subject: [PATCH 085/221] [Keymap] corne and planck keyboards keymaps (#15570)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/crkbd/keymaps/antosha417/config.h | 37 ++
keyboards/crkbd/keymaps/antosha417/keymap.c | 401 ++++++++++++++++
.../crkbd/keymaps/antosha417/mod_tap_keys.h | 15 +
keyboards/crkbd/keymaps/antosha417/rules.mk | 5 +
keyboards/crkbd/keymaps/antosha417/todo.md | 13 +
keyboards/planck/keymaps/antosha417/config.h | 34 ++
keyboards/planck/keymaps/antosha417/keymap.c | 452 ++++++++++++++++++
.../planck/keymaps/antosha417/mod_tap_keys.h | 14 +
keyboards/planck/keymaps/antosha417/readme.md | 11 +
keyboards/planck/keymaps/antosha417/rules.mk | 4 +
10 files changed, 986 insertions(+)
create mode 100644 keyboards/crkbd/keymaps/antosha417/config.h
create mode 100644 keyboards/crkbd/keymaps/antosha417/keymap.c
create mode 100644 keyboards/crkbd/keymaps/antosha417/mod_tap_keys.h
create mode 100644 keyboards/crkbd/keymaps/antosha417/rules.mk
create mode 100644 keyboards/crkbd/keymaps/antosha417/todo.md
create mode 100644 keyboards/planck/keymaps/antosha417/config.h
create mode 100644 keyboards/planck/keymaps/antosha417/keymap.c
create mode 100644 keyboards/planck/keymaps/antosha417/mod_tap_keys.h
create mode 100644 keyboards/planck/keymaps/antosha417/readme.md
create mode 100644 keyboards/planck/keymaps/antosha417/rules.mk
diff --git a/keyboards/crkbd/keymaps/antosha417/config.h b/keyboards/crkbd/keymaps/antosha417/config.h
new file mode 100644
index 000000000000..4b6e86fd6ba0
--- /dev/null
+++ b/keyboards/crkbd/keymaps/antosha417/config.h
@@ -0,0 +1,37 @@
+// Copyright 2021 Anton Kavalkou (@antosha417)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+
+/* Select hand configuration */
+
+//#define MASTER_LEFT
+// #define MASTER_RIGHT
+#define EE_HANDS
+
+
+#define TAPPING_FORCE_HOLD
+
+#ifdef RGBLIGHT_ENABLE
+ #undef RGBLED_NUM
+ #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 RGBLED_NUM 27
+ #define RGBLIGHT_LIMIT_VAL 120
+ #define RGBLIGHT_HUE_STEP 10
+ #define RGBLIGHT_SAT_STEP 17
+ #define RGBLIGHT_VAL_STEP 17
+#endif
+
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT
+#define COMBO_TERM 30
+
diff --git a/keyboards/crkbd/keymaps/antosha417/keymap.c b/keyboards/crkbd/keymaps/antosha417/keymap.c
new file mode 100644
index 000000000000..bdee14848587
--- /dev/null
+++ b/keyboards/crkbd/keymaps/antosha417/keymap.c
@@ -0,0 +1,401 @@
+// Copyright 2021 Anton Kavalkou (@antosha417)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include QMK_KEYBOARD_H
+#include "sendstring_dvorak.h"
+
+typedef union {
+ uint32_t raw;
+ struct {
+ bool is_macos :1;
+ };
+} user_config;
+
+user_config config;
+
+enum layers {
+ _QWERTY,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _TOP,
+ _BOTTOM,
+};
+
+enum keycodes {
+ QWERTY = SAFE_RANGE,
+
+ RUS_LANG,
+ EN_LANG,
+ HEB_LANG,
+
+ VIM_SAVE,
+
+ CHNGE_OS,
+ DELETE_WORD,
+
+#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ keycode,
+#include "mod_tap_keys.h"
+#undef MOD_TAP_KEY
+};
+
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define TOP MO(_TOP)
+#define BOTTOM MO(_BOTTOM)
+#define LANG TG(_DVORAK)
+#define KC_CAD LALT(LCTL(KC_DEL))
+#define KC_CAH LALT(LCTL(KC_HOME))
+
+#define E_SFT LSFT_T(KC_E)
+#define D_SFT LSFT_T(KC_D)
+#define A_ALT LALT_T(KC_A)
+#define O_GUI LGUI_T(KC_O)
+#define U_CTRL LCTL_T(KC_U)
+
+#define T_SFT RSFT_T(KC_T)
+#define K_SFT RSFT_T(KC_K)
+#define S_ALT RALT_T(KC_S)
+#define N_GUI RGUI_T(KC_N)
+#define H_CTRL RCTL_T(KC_H)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = LAYOUT_split_3x6_3(
+//,-----------------------------------------------------. ,-----------------------------------------------------.
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ KC_ESC, A_ALTQ, S_GUIQ, D_SFT, F_CTLQ, KC_G, KC_H, J_CTLQ, K_SFT, L_GUIQ, SCLN_Q, 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,
+//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ BOTTOM, KC_SPC, LOWER, RAISE, KC_SPC, TOP
+ //`--------------------------' `--------------------------'
+),
+
+[_DVORAK] = LAYOUT_split_3x6_3(
+//,-----------------------------------------------------. ,-----------------------------------------------------.
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ KC_LCTL, A_ALT, O_GUI, E_SFT, U_CTRL, KC_I, KC_D, H_CTRL, T_SFT, N_GUI, S_ALT, KC_QUOT,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ESC,
+//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______
+ //`--------------------------' `--------------------------'
+),
+
+[_LOWER] = LAYOUT_split_3x6_3(
+//,-----------------------------------------------------. ,-----------------------------------------------------.
+ KC_F11, KC_UNDS, KC_MINS, KC_TILD, KC_PERC, KC_QUOT, _______, KC_CIRC, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ KC_DEL, KC_LBRC, KC_LCBR, KC_PLUS, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_EXLM, KC_RCBR, KC_RBRC, KC_BSPC,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ _______, KC_CAD, KC_CAH, _______, LANG, _______, _______,HEB_LANG, EN_LANG,RUS_LANG, _______, _______,
+//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______
+ //`--------------------------' `--------------------------'
+ //^^^^^^^
+),
+
+
+[_RAISE] = LAYOUT_split_3x6_3(
+//,-----------------------------------------------------. ,-----------------------------------------------------.
+ KC_F11, _______, _______, KC_DLR, KC_AMPR, _______, KC_COLON, KC_QUES, KC_AT, KC_HASH, KC_SLSH, KC_F12,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ _______, KC_7, KC_5, KC_3, KC_1, KC_9, KC_0, KC_2, KC_4, KC_6, KC_8, KC_BSPC,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ _______, KC_F7, KC_F5, KC_F3, KC_F1, KC_F9, KC_F10, KC_F2, KC_F4, KC_F6, KC_F8, _______,
+//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______
+ //`--------------------------' `--------------------------'
+ //^^^^^^^
+),
+
+[_TOP] = LAYOUT_split_3x6_3(
+//,-----------------------------------------------------. ,-----------------------------------------------------.
+ _______,CHNGE_OS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, KC_DOWN, KC_UP, _______, _______, _______, _______, _______, _______, _______,
+//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______
+ //`--------------------------' `--------------------------'
+ //^^^^^^^
+),
+
+[_BOTTOM] = LAYOUT_split_3x6_3(
+//,-----------------------------------------------------. ,-----------------------------------------------------.
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RGHT, _______,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, _______, _______, _______,
+//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______,
+//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______
+ //`--------------------------' `--------------------------'
+ //^^^^^^^
+)
+
+};
+
+enum combo_events {
+ // combos for dvorak layer
+ RU_COMBO,
+ EN_COMBO,
+ HEB_COMBO,
+ ESC_COMBO,
+ TAB_COMBO,
+ ENT_COMBO,
+ DEL_COMBO,
+ SAVE_COMBO,
+ BSPC_COMBO,
+ BSPCW_COMBO,
+
+ // combos for qwerty layer
+ RUQ_COMBO,
+ ENQ_COMBO,
+ HEBQ_COMBO,
+ ESCQ_COMBO,
+ TABQ_COMBO,
+ ENTQ_COMBO,
+ DELQ_COMBO,
+ SAVEQ_COMBO,
+ BSPCQ_COMBO,
+ BSPCWQ_COMBO,
+
+ COMBO_LENGTH
+};
+uint16_t COMBO_LEN = COMBO_LENGTH;
+
+const uint16_t PROGMEM ru_combo[] = {KC_R, U_CTRL, COMBO_END};
+const uint16_t PROGMEM en_combo[] = {U_CTRL, S_ALT, COMBO_END};
+const uint16_t PROGMEM heb_combo[] = {KC_I, KC_V, COMBO_END};
+const uint16_t PROGMEM esc_combo[] = {H_CTRL, U_CTRL, COMBO_END};
+const uint16_t PROGMEM tab_combo[] = {T_SFT, A_ALT, COMBO_END};
+const uint16_t PROGMEM ent_combo[]= {E_SFT, N_GUI, COMBO_END};
+const uint16_t PROGMEM del_combo[] = {KC_D, E_SFT, COMBO_END};
+const uint16_t PROGMEM bspc_combo[] = {KC_C, H_CTRL, COMBO_END};
+const uint16_t PROGMEM bspcw_combo[] = {N_GUI, U_CTRL, COMBO_END};
+const uint16_t PROGMEM save_combo[] = {O_GUI, H_CTRL, COMBO_END};
+
+const uint16_t PROGMEM ruq_combo[] = {KC_O, F_CTLQ, COMBO_END};
+const uint16_t PROGMEM enq_combo[] = {F_CTLQ, SCLN_Q, COMBO_END};
+const uint16_t PROGMEM hebq_combo[] = {KC_G, KC_DOT, COMBO_END};
+const uint16_t PROGMEM escq_combo[] = {F_CTLQ, J_CTLQ, COMBO_END};
+const uint16_t PROGMEM tabq_combo[] = {K_SFT, A_ALTQ, COMBO_END};
+const uint16_t PROGMEM entq_combo[] = {D_SFT, L_GUIQ, COMBO_END};
+const uint16_t PROGMEM delq_combo[] = {KC_H, D_SFT, COMBO_END};
+const uint16_t PROGMEM bspcq_combo[] = {KC_I, J_CTLQ, COMBO_END};
+const uint16_t PROGMEM bspcwq_combo[] = {L_GUIQ, F_CTLQ, COMBO_END};
+const uint16_t PROGMEM saveq_combo[] = {S_GUIQ, J_CTLQ, COMBO_END};
+
+combo_t key_combos[] = {
+ [RU_COMBO] = COMBO(ru_combo, RUS_LANG),
+ [EN_COMBO] = COMBO(en_combo, EN_LANG),
+ [HEB_COMBO] = COMBO(heb_combo, HEB_LANG),
+ [ESC_COMBO] = COMBO(esc_combo, KC_ESC),
+ [TAB_COMBO] = COMBO(tab_combo, KC_TAB),
+ [ENT_COMBO] = COMBO(ent_combo, KC_ENT),
+ [DEL_COMBO] = COMBO(del_combo, KC_DEL),
+ [BSPC_COMBO] = COMBO(bspc_combo, KC_BSPC),
+ [SAVE_COMBO] = COMBO(save_combo, VIM_SAVE),
+ [BSPCW_COMBO] = COMBO(bspcw_combo, DELETE_WORD),
+
+ [RUQ_COMBO] = COMBO(ruq_combo, RUS_LANG),
+ [ENQ_COMBO] = COMBO(enq_combo, EN_LANG),
+ [HEBQ_COMBO] = COMBO(hebq_combo, HEB_LANG),
+ [ESCQ_COMBO] = COMBO(escq_combo, KC_ESC),
+ [TABQ_COMBO] = COMBO(tabq_combo, KC_TAB),
+ [ENTQ_COMBO] = COMBO(entq_combo, KC_ENT),
+ [DELQ_COMBO] = COMBO(delq_combo, KC_DEL),
+ [BSPCQ_COMBO] = COMBO(bspcq_combo, KC_BSPC),
+ [SAVEQ_COMBO] = COMBO(saveq_combo, VIM_SAVE),
+ [BSPCWQ_COMBO] = COMBO(bspcwq_combo, DELETE_WORD),
+};
+
+
+#ifdef OLED_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ if (!is_keyboard_master()) {
+ return OLED_ROTATION_180; // flips the display 180 degrees if offhand
+ }
+ return rotation;
+}
+
+void oled_render_layer_state(void) {
+ oled_write_P(PSTR("layer: "), false);
+ switch (get_highest_layer(layer_state|default_layer_state)) {
+ case _QWERTY:
+ oled_write_ln_P(PSTR("qwerty"), false);
+ break
+ case _DVORAK:
+ oled_write_ln_P(PSTR("dvorak"), false);
+ break;
+ case _LOWER:
+ oled_write_ln_P(PSTR("lower"), false);
+ break;
+ case_RAISE:
+ oled_write_ln_P(PSTR("raise"), false);
+ break;
+ case _TOP:
+ oled_write_ln_P(PSTR("top"), false);
+ break;
+ case _BOTTOM:
+ oled_write_ln_P(PSTR("bottom"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("unknown"), false);
+ break;
+ }
+}
+
+void render_bootmagic_status(bool status) {
+ /* Show Ctrl-Gui Swap options */
+ static const char PROGMEM logo[][2][3] = {
+ {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
+ {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
+ };
+ if (status) {
+ oled_write_ln_P(logo[0][0], false);
+ oled_write_ln_P(logo[0][1], false);
+ } else {
+ oled_write_ln_P(logo[1][0], false);
+ oled_write_ln_P(logo[1][1], false);
+ }
+}
+
+void oled_render_logo(void) {
+ static const char PROGMEM crkbd_logo[] = {
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
+ 0};
+ oled_write_P(crkbd_logo, false);
+}
+
+bool oled_task_user(void) {
+ if (is_keyboard_master()) {
+ oled_write_ln_P(PSTR("nice cock"), false);
+ oled_render_layer_state();
+ } else {
+ oled_render_logo();
+ }
+ return false;
+}
+
+#endif // OLED_ENABLE
+
+void keyboard_post_init_user(void) {
+ config.raw = eeconfig_read_user();
+ layer_on(_DVORAK);
+}
+
+void set_english_language(void) {
+ layer_on(_DVORAK);
+ tap_code16(LSFT(LCTL(LGUI(KC_1))));
+}
+
+void set_russian_language(void) {
+ layer_off(_DVORAK);
+ tap_code16(LSFT(LCTL(LGUI(KC_2))));
+}
+
+void set_hebrew_language(void) {
+ layer_off(_DVORAK);
+ tap_code16(LSFT(LCTL(LGUI(KC_3))));
+}
+
+void delete_word(void) {
+ if (config.is_macos) {
+ tap_code16(A(KC_BSPC));
+ } else {
+ tap_code16(C(KC_BSPC));
+ }
+}
+
+#define CASE(keycode, key_pressed_action, key_released_action) \
+ case (keycode): \
+ if (record->event.pressed) { \
+ key_pressed_action; \
+ } else { \
+ key_released_action; \
+ } \
+ return false; \
+ break;
+
+#define CASE_PRESSED(keycode, key_pressed_action) CASE(keycode, key_pressed_action, {});
+
+#define CASE_MOD_TAP_KEY(keycode, tap_action, mod_off_action) \
+ CASE(keycode, { \
+ keycode ## _TIMER = timer_read(); \
+ IS_ ## keycode ## _ACTIVE = true; \
+ }, { \
+ if(IS_ ## keycode ## _MOD_ACTIVE) { \
+ mod_off_action; \
+ } else if (IS_ ## keycode ## _ACTIVE) { \
+ tap_action; \
+ } \
+ IS_ ## keycode ## _MOD_ACTIVE = false; \
+ IS_ ## keycode ## _ACTIVE = false; \
+ });
+
+#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+uint16_t keycode ## _TIMER = 0; \
+bool IS_ ## keycode ## _ACTIVE = false; \
+bool IS_ ## keycode ## _MOD_ACTIVE = false;
+#include "mod_tap_keys.h"
+#undef MOD_TAP_KEY
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ #ifdef OLED_ENABLE
+ if (record->event.pressed) {
+ set_keylog(keycode, record);
+ }
+#endif //OLED_ENABLE
+
+ switch (keycode) {
+ CASE_PRESSED(EN_LANG, set_english_language());
+ CASE_PRESSED(RUS_LANG, set_russian_language());
+ CASE_PRESSED(HEB_LANG, set_hebrew_language());
+
+ CASE_PRESSED(VIM_SAVE, {set_english_language(); SEND_STRING(SS_TAP(X_ESC)SS_LSFT(SS_TAP(X_SCLN))SS_TAP(X_W)SS_TAP(X_ENT));});
+
+ CASE_PRESSED(CHNGE_OS, {config.is_macos ^= 1; eeconfig_update_user(config.raw);});
+ CASE_PRESSED(DELETE_WORD, delete_word());
+
+ #define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ CASE_MOD_TAP_KEY(keycode, tap_action, mod_off_action);
+ #include "mod_tap_keys.h"
+ #undef MOD_TAP_KEY
+ }
+
+ #define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ if (IS_ ## keycode ## _ACTIVE && !IS_ ## keycode ## _MOD_ACTIVE) { \
+ if (timer_elapsed(keycode ## _TIMER) <= TAPPING_TERM) { \
+ tap_action; \
+ IS_ ## keycode ## _ACTIVE = false; \
+ } \
+ }
+ #include "mod_tap_keys.h"
+ #undef MOD_TAP_KEY
+
+ return true;
+}
+
+void matrix_scan_user(void) {
+ #define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ if (IS_ ## keycode ## _ACTIVE) { \
+ if (timer_elapsed(keycode ## _TIMER) > TAPPING_TERM) { \
+ mod_on_action; \
+ IS_ ## keycode ## _MOD_ACTIVE = true; \
+ } \
+ }
+ #include "mod_tap_keys.h"
+ #undef MOD_TAP_KEY
+}
+
diff --git a/keyboards/crkbd/keymaps/antosha417/mod_tap_keys.h b/keyboards/crkbd/keymaps/antosha417/mod_tap_keys.h
new file mode 100644
index 000000000000..0d7a86b69131
--- /dev/null
+++ b/keyboards/crkbd/keymaps/antosha417/mod_tap_keys.h
@@ -0,0 +1,15 @@
+// Copyright 2021 Anton Kavalkou (@antosha417)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+// MOD_TAP_KEY(key, tap_action, mod_on_action, mod_off_action)
+
+MOD_TAP_KEY(S_GUIQ, tap_code(KC_S), {layer_on(_DVORAK); register_code(KC_LGUI);}, {layer_off(_DVORAK); unregister_code(KC_LGUI);})
+MOD_TAP_KEY(L_GUIQ, tap_code(KC_L), {layer_on(_DVORAK); register_code(KC_RGUI);}, {layer_off(_DVORAK); unregister_code(KC_RGUI);})
+
+MOD_TAP_KEY(F_CTLQ, tap_code(KC_F), {layer_on(_DVORAK); register_code(KC_LCTL);}, {layer_off(_DVORAK); unregister_code(KC_LCTL);})
+MOD_TAP_KEY(J_CTLQ, tap_code(KC_J), {layer_on(_DVORAK); register_code(KC_RCTL);}, {layer_off(_DVORAK); unregister_code(KC_RCTL);})
+
+MOD_TAP_KEY(A_ALTQ, tap_code(KC_A), {layer_on(_DVORAK); register_code(KC_LALT);}, {layer_off(_DVORAK); unregister_code(KC_LALT);})
+MOD_TAP_KEY(SCLN_Q, tap_code(KC_SCLN), {layer_on(_DVORAK); register_code(KC_RALT);},{layer_off(_DVORAK); unregister_code(KC_RALT);})
+
+
diff --git a/keyboards/crkbd/keymaps/antosha417/rules.mk b/keyboards/crkbd/keymaps/antosha417/rules.mk
new file mode 100644
index 000000000000..63a3a16616f4
--- /dev/null
+++ b/keyboards/crkbd/keymaps/antosha417/rules.mk
@@ -0,0 +1,5 @@
+OLED_ENABLE = yes
+COMBO_ENABLE = yes
+
+LTO_ENABLE = yes #enable link time optimization to reduce binary size
+
diff --git a/keyboards/crkbd/keymaps/antosha417/todo.md b/keyboards/crkbd/keymaps/antosha417/todo.md
new file mode 100644
index 000000000000..4ee83af65dec
--- /dev/null
+++ b/keyboards/crkbd/keymaps/antosha417/todo.md
@@ -0,0 +1,13 @@
+# Notes:
+ * to flush firmware to keyboard use:
+ ```
+ $ make crkbd/rev1:antosha417:avrdude-split-right
+ $ make crkbd/rev1:antosha417:avrdude-split-left
+ ```
+
+# Todo:
+ [ ] do something with displayig symbols on oled screen
+ [ ] count wpm
+ [ ] load images
+ [X] figure out how to delete word on linux
+ [X] fix oled layer names
diff --git a/keyboards/planck/keymaps/antosha417/config.h b/keyboards/planck/keymaps/antosha417/config.h
new file mode 100644
index 000000000000..9bbb1192c7d7
--- /dev/null
+++ b/keyboards/planck/keymaps/antosha417/config.h
@@ -0,0 +1,34 @@
+// Copyright 2021 Anton Kavalkou (@antosha417)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(PLANCK_SOUND)
+ // #define STARTUP_SONG SONG(NO_SOUND)
+#endif
+
+/*
+ * MIDI options
+ */
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+// Most tactile encoders have detents every 4 stages
+#define ENCODER_RESOLUTION 4
+
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT
+#define COMBO_TERM 30
+
diff --git a/keyboards/planck/keymaps/antosha417/keymap.c b/keyboards/planck/keymaps/antosha417/keymap.c
new file mode 100644
index 000000000000..a3d46c231173
--- /dev/null
+++ b/keyboards/planck/keymaps/antosha417/keymap.c
@@ -0,0 +1,452 @@
+// Copyright 2021 Anton Kavalkou (@antosha417)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include QMK_KEYBOARD_H
+#include "sendstring_dvorak.h"
+#include "muse.h"
+
+enum layers {
+ _QWERTY,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _TOP,
+ _BOTTOM,
+ _ADJUST
+};
+
+float USSR_SONG[][2] = SONG(B__NOTE(_G6),
+ B__NOTE(_C7), W__NOTE(_G6), H__NOTE(_A6),
+ B__NOTE(_B6), W__NOTE(_E6), W__NOTE(_E6),
+ B__NOTE(_A6), W__NOTE(_G6), H__NOTE(_F6),
+ B__NOTE(_G6), W__NOTE(_C6), W__NOTE(_C6),
+ B__NOTE(_D6), W__NOTE(_D6), W__NOTE(_E6),
+ B__NOTE(_D6), W__NOTE(_D6), W__NOTE(_G6),
+ B__NOTE(_F6), W__NOTE(_G6), W__NOTE(_A6),
+ B__NOTE(_B6),
+ );
+
+enum keycodes {
+ QWERTY = SAFE_RANGE,
+
+ RUS_LANG,
+ EN_LANG,
+ HEB_LANG,
+
+ BRUDERSCHAFT,
+ VIM_SAVE,
+
+#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ keycode,
+#include "mod_tap_keys.h"
+#undef MOD_TAP_KEY
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define TOP MO(_TOP)
+#define BOTTOM MO(_BOTTOM)
+#define LANG TG(_DVORAK)
+#define KC_CAD LALT(LCTL(KC_DEL))
+#define KC_CAH LALT(LCTL(KC_HOME))
+
+#define E_SFT LSFT_T(KC_E)
+#define D_SFT LSFT_T(KC_D)
+#define A_ALT LALT_T(KC_A)
+#define O_GUI LGUI_T(KC_O)
+#define U_CTRL LCTL_T(KC_U)
+
+#define T_SFT RSFT_T(KC_T)
+#define K_SFT RSFT_T(KC_K)
+#define S_ALT RALT_T(KC_S)
+#define N_GUI RGUI_T(KC_N)
+#define H_CTRL RCTL_T(KC_H)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | | Q | W | E | R | T | Y | U | I | O | P | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | A | S | D | F | G | H | J | K | L | ; | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Z | X | C | V | B | N | M | , | . | / | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |Bottom| SPC |Lower |Raise | SPC | TOP | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_planck_grid(
+ _______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
+ _______, A_ALTQ, S_GUIQ, D_SFT, F_CTLQ, KC_G, KC_H, J_CTLQ, K_SFT, L_GUIQ, SCLN_Q, _______,
+ _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, BOTTOM, KC_SPC, LOWER, RAISE, KC_SPC, TOP, _______, _______, _______
+),
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | | ' | , | . | P | Y | F | G | C | R | L | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | A | O | E | U | I | D | H | T | N | S | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | ; | Q | J | K | X | B | M | W | V | Z | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT_planck_grid(
+ _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
+ _______, A_ALT, O_GUI, E_SFT, U_CTRL, KC_I, KC_D, H_CTRL, T_SFT, N_GUI, S_ALT, _______,
+ _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | F11 | _ | - | ~ | % | ' | | ^ | ` | \ | | | - |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | [ | { | + | ( | = | * | ) | ! | } | ] | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | CAD | CAH | | LANG | | | EN | HEB | RUS | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | RCTL | | | | [{}] | | | PSCR | PGDN | PGUP | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_planck_grid(
+ KC_F11, KC_UNDS, KC_MINS, KC_TILD, KC_PERC, KC_QUOT, _______, KC_CIRC, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS,
+ KC_DEL, KC_LBRC, KC_LCBR, KC_PLUS, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_EXLM, KC_RCBR, KC_RBRC, KC_BSPC,
+ _______, KC_CAD, KC_CAH, _______, LANG, _______, _______, HEB_LANG, EN_LANG, RUS_LANG, _______, _______,
+ _______, KC_RCTL, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_PGDN, KC_PGUP, _______
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | F11 | | | $ | & | | : | ? | @ | # | / | F12 |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | 7 | 5 | 3 | 1 | 9 | 0 | 2 | 4 | 6 | 8 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F5 | F3 | F1 | F9 | F10 | F2 | F4 | F6 | F8 | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | [{}] | | Vol- | End | Home | Vol+ |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_planck_grid(
+ KC_F11, _______, _______, KC_DLR, KC_AMPR, _______, KC_COLON, KC_QUES, KC_AT, KC_HASH, KC_SLSH, KC_F12,
+ _______, KC_7, KC_5, KC_3, KC_1, KC_9, KC_0, KC_2, KC_4, KC_6, KC_8, KC_BSPC,
+ _______, KC_F7, KC_F5, KC_F3, KC_F1, KC_F9, KC_F10, KC_F2, KC_F4, KC_F6, KC_F8, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_END, KC_HOME, KC_VOLU
+),
+
+/* TOP
+ * ,-----------------------------------------------------------------------------------
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | Down | Up | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | [{}] | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_TOP] = LAYOUT_planck_grid(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_DOWN, KC_UP, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* BOTTOM
+ * ,-----------------------------------------------------------------------------------
+ * | | | | | | | | | | | -> | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | <- | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | vold | volu | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | [{}] | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_BOTTOM] = LAYOUT_planck_grid(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Adjust (Lower + Raise)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------
+ * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |Aud on|Audoff| | | | | | |Dvorak| | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |Mus on|Musoff| | | | | | | | | USSR |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | [{}] | [{}] | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_planck_grid(
+ _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, AU_ON, AU_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______, _______, BRUDERSCHAFT,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
+void keyboard_post_init_user(void) {
+ layer_on(_DVORAK);
+}
+
+void set_english_language(void) {
+ layer_on(_DVORAK);
+ SEND_STRING(SS_LSFT(SS_LCTL(SS_LGUI(SS_TAP(X_1)))));
+}
+
+void set_russian_language(void) {
+ layer_off(_DVORAK);
+ SEND_STRING(SS_LSFT(SS_LCTL(SS_LGUI(SS_TAP(X_2)))));
+}
+
+void set_hebrew_language(void) {
+ layer_off(_DVORAK);
+ SEND_STRING(SS_LSFT(SS_LCTL(SS_LGUI(SS_TAP(X_3)))));
+}
+
+
+#define CASE(keycode, key_pressed_action, key_released_action) \
+ case (keycode): \
+ if (record->event.pressed) { \
+ key_pressed_action; \
+ } else { \
+ key_released_action; \
+ } \
+ return false; \
+ break;
+
+#define CASE_PRESSED(keycode, key_pressed_action) CASE(keycode, key_pressed_action, {});
+
+#define CASE_MOD_TAP_KEY(keycode, tap_action, mod_off_action) \
+ CASE(keycode, { \
+ keycode ## _TIMER = timer_read(); \
+ IS_ ## keycode ## _ACTIVE = true; \
+ }, { \
+ if(IS_ ## keycode ## _MOD_ACTIVE) { \
+ mod_off_action; \
+ } else if (IS_ ## keycode ## _ACTIVE) { \
+ tap_action; \
+ } \
+ IS_ ## keycode ## _MOD_ACTIVE = false; \
+ IS_ ## keycode ## _ACTIVE = false; \
+ });
+
+#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+uint16_t keycode ## _TIMER = 0; \
+bool IS_ ## keycode ## _ACTIVE = false; \
+bool IS_ ## keycode ## _MOD_ACTIVE = false;
+#include "mod_tap_keys.h"
+#undef MOD_TAP_KEY
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ CASE_PRESSED(BRUDERSCHAFT, PLAY_SONG(USSR_SONG));
+
+ CASE_PRESSED(EN_LANG, set_english_language());
+ CASE_PRESSED(RUS_LANG, set_russian_language());
+ CASE_PRESSED(HEB_LANG, set_hebrew_language());
+
+ CASE_PRESSED(VIM_SAVE, {set_english_language(); SEND_STRING(SS_TAP(X_ESC)SS_LSFT(SS_TAP(X_SCLN))SS_TAP(X_W)SS_TAP(X_ENT));});
+
+ #define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ CASE_MOD_TAP_KEY(keycode, tap_action, mod_off_action);
+ #include "mod_tap_keys.h"
+ #undef MOD_TAP_KEY
+ }
+
+ #define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ if (IS_ ## keycode ## _ACTIVE && !IS_ ## keycode ## _MOD_ACTIVE) { \
+ if (timer_elapsed(keycode ## _TIMER) <= TAPPING_TERM) { \
+ tap_action; \
+ IS_ ## keycode ## _ACTIVE = false; \
+ } \
+ }
+ #include "mod_tap_keys.h"
+ #undef MOD_TAP_KEY
+
+ return true;
+}
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (muse_mode) {
+ if (IS_LAYER_ON(_RAISE)) {
+ if (clockwise) {
+ muse_offset++;
+ } else {
+ muse_offset--;
+ }
+ } else {
+ if (clockwise) {
+ muse_tempo+=1;
+ } else {
+ muse_tempo-=1;
+ }
+ }
+ } else {
+ if (clockwise) {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_DOWN);
+ #else
+ tap_code(KC_PGDN);
+ #endif
+ } else {
+ #ifdef MOUSEKEY_ENABLE
+ tap_code(KC_MS_WH_UP);
+ #else
+ tap_code(KC_PGUP);
+ #endif
+ }
+ }
+ return false;
+}
+
+bool dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0:
+ if (active) {
+ layer_off(_ADJUST);
+ }
+ break;
+ case 1:
+ if (active) {
+ muse_mode = true;
+ } else {
+ muse_mode = false;
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ #endif
+ }
+ }
+ return true;
+}
+
+void matrix_scan_user(void) {
+ #define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
+ if (IS_ ## keycode ## _ACTIVE) { \
+ if (timer_elapsed(keycode ## _TIMER) > TAPPING_TERM) { \
+ mod_on_action; \
+ IS_ ## keycode ## _MOD_ACTIVE = true; \
+ } \
+ }
+ #include "mod_tap_keys.h"
+ #undef MOD_TAP_KEY
+
+ #ifdef AUDIO_ENABLE
+ if (muse_mode) {
+ if (muse_counter == 0) {
+ uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+ if (muse_note != last_muse_note) {
+ stop_note(compute_freq_for_midi_note(last_muse_note));
+ play_note(compute_freq_for_midi_note(muse_note), 0xF);
+ last_muse_note = muse_note;
+ }
+ }
+ muse_counter = (muse_counter + 1) % muse_tempo;
+ }
+ #endif
+}
+
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case RAISE:
+ case LOWER:
+ return false;
+ default:
+ return true;
+ }
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+enum combo_events {
+ // combos for dvorak layer
+ RU_COMBO,
+ EN_COMBO,
+ HEB_COMBO,
+ ESC_COMBO,
+ TAB_COMBO,
+ ENT_COMBO,
+ DEL_COMBO,
+ SAVE_COMBO,
+ BSPC_COMBO,
+ BSPCW_COMBO,
+
+ // combos for qwerty layer
+ RUQ_COMBO,
+ ENQ_COMBO,
+ HEBQ_COMBO,
+ ESCQ_COMBO,
+ TABQ_COMBO,
+ ENTQ_COMBO,
+ DELQ_COMBO,
+ SAVEQ_COMBO,
+ BSPCQ_COMBO,
+ BSPCWQ_COMBO,
+
+ COMBO_LENGTH
+};
+uint16_t COMBO_LEN = COMBO_LENGTH;
+
+const uint16_t PROGMEM ru_combo[] = {KC_R, U_CTRL, COMBO_END};
+const uint16_t PROGMEM en_combo[] = {U_CTRL, S_ALT, COMBO_END};
+const uint16_t PROGMEM heb_combo[] = {KC_I, KC_V, COMBO_END};
+const uint16_t PROGMEM esc_combo[] = {H_CTRL, U_CTRL, COMBO_END};
+const uint16_t PROGMEM tab_combo[] = {T_SFT, A_ALT, COMBO_END};
+const uint16_t PROGMEM ent_combo[] = {E_SFT, N_GUI, COMBO_END};
+const uint16_t PROGMEM del_combo[] = {KC_D, E_SFT, COMBO_END};
+const uint16_t PROGMEM bspc_combo[] = {KC_C, H_CTRL, COMBO_END};
+const uint16_t PROGMEM bspcw_combo[] = {N_GUI, U_CTRL, COMBO_END};
+const uint16_t PROGMEM save_combo[] = {O_GUI, H_CTRL, COMBO_END};
+
+const uint16_t PROGMEM ruq_combo[] = {KC_O, F_CTLQ, COMBO_END};
+const uint16_t PROGMEM enq_combo[] = {F_CTLQ, SCLN_Q, COMBO_END};
+const uint16_t PROGMEM hebq_combo[] = {KC_G, KC_DOT, COMBO_END};
+const uint16_t PROGMEM escq_combo[] = {F_CTLQ, J_CTLQ, COMBO_END};
+const uint16_t PROGMEM tabq_combo[] = {K_SFT, A_ALTQ, COMBO_END};
+const uint16_t PROGMEM entq_combo[] = {D_SFT, L_GUIQ, COMBO_END};
+const uint16_t PROGMEM delq_combo[] = {KC_H, D_SFT, COMBO_END};
+const uint16_t PROGMEM bspcq_combo[] = {KC_I, J_CTLQ, COMBO_END};
+const uint16_t PROGMEM bspcwq_combo[] = {L_GUIQ, F_CTLQ, COMBO_END};
+const uint16_t PROGMEM saveq_combo[] = {S_GUIQ, J_CTLQ, COMBO_END};
+
+combo_t key_combos[] = {
+ [RU_COMBO] = COMBO(ru_combo, RUS_LANG),
+ [EN_COMBO] = COMBO(en_combo, EN_LANG),
+ [HEB_COMBO] = COMBO(heb_combo, HEB_LANG),
+ [ESC_COMBO] = COMBO(esc_combo, KC_ESC),
+ [TAB_COMBO] = COMBO(tab_combo, KC_TAB),
+ [ENT_COMBO] = COMBO(ent_combo, KC_ENT),
+ [DEL_COMBO] = COMBO(del_combo, KC_DEL),
+ [BSPC_COMBO] = COMBO(bspc_combo, KC_BSPC),
+ [SAVE_COMBO] = COMBO(save_combo, VIM_SAVE),
+ [BSPCW_COMBO] = COMBO(bspcw_combo, A(KC_BSPC)),
+
+ [RUQ_COMBO] = COMBO(ruq_combo, RUS_LANG),
+ [ENQ_COMBO] = COMBO(enq_combo, EN_LANG),
+ [HEBQ_COMBO] = COMBO(hebq_combo, HEB_LANG),
+ [ESCQ_COMBO] = COMBO(escq_combo, KC_ESC),
+ [TABQ_COMBO] = COMBO(tabq_combo, KC_TAB),
+ [ENTQ_COMBO] = COMBO(entq_combo, KC_ENT),
+ [DELQ_COMBO] = COMBO(delq_combo, KC_DEL),
+ [BSPCQ_COMBO] = COMBO(bspcq_combo, KC_BSPC),
+ [SAVEQ_COMBO] = COMBO(saveq_combo, VIM_SAVE),
+ [BSPCWQ_COMBO] = COMBO(bspcwq_combo, A(KC_BSPC)),
+};
+
+
diff --git a/keyboards/planck/keymaps/antosha417/mod_tap_keys.h b/keyboards/planck/keymaps/antosha417/mod_tap_keys.h
new file mode 100644
index 000000000000..aa82f9692cc0
--- /dev/null
+++ b/keyboards/planck/keymaps/antosha417/mod_tap_keys.h
@@ -0,0 +1,14 @@
+// Copyright 2021 Anton Kavalkou (@antosha417)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+// MOD_TAP_KEY(key, tap_action, mod_on_action, mod_off_action)
+
+MOD_TAP_KEY(S_GUIQ, tap_code(KC_S), {layer_on(_DVORAK); register_code(KC_LGUI);}, {layer_off(_DVORAK); unregister_code(KC_LGUI);})
+MOD_TAP_KEY(L_GUIQ, tap_code(KC_L), {layer_on(_DVORAK); register_code(KC_RGUI);}, {layer_off(_DVORAK); unregister_code(KC_RGUI);})
+
+MOD_TAP_KEY(F_CTLQ, tap_code(KC_F), {layer_on(_DVORAK); register_code(KC_LCTL);}, {layer_off(_DVORAK); unregister_code(KC_LCTL);})
+MOD_TAP_KEY(J_CTLQ, tap_code(KC_J), {layer_on(_DVORAK); register_code(KC_RCTL);}, {layer_off(_DVORAK); unregister_code(KC_RCTL);})
+
+MOD_TAP_KEY(A_ALTQ, tap_code(KC_A), {layer_on(_DVORAK); register_code(KC_LALT);}, {layer_off(_DVORAK); unregister_code(KC_LALT);})
+MOD_TAP_KEY(SCLN_Q, tap_code(KC_SCLN), {layer_on(_DVORAK); register_code(KC_RALT);}, {layer_off(_DVORAK); unregister_code(KC_RALT);})
+
diff --git a/keyboards/planck/keymaps/antosha417/readme.md b/keyboards/planck/keymaps/antosha417/readme.md
new file mode 100644
index 000000000000..a7adbf74bbf3
--- /dev/null
+++ b/keyboards/planck/keymaps/antosha417/readme.md
@@ -0,0 +1,11 @@
+# How to install:
+
+ make planck/rev6:antosha417:flash
+
+# Useful:
+ * [keycodes](https://docs.qmk.fm/#/keycodes)
+ * [string keycodes](https://github.com/qmk/qmk_firmware/blob/master/quantum/send_string_keycodes.h)
+
+# Todo:
+ [ ] sync with corne
+
diff --git a/keyboards/planck/keymaps/antosha417/rules.mk b/keyboards/planck/keymaps/antosha417/rules.mk
new file mode 100644
index 000000000000..469769525216
--- /dev/null
+++ b/keyboards/planck/keymaps/antosha417/rules.mk
@@ -0,0 +1,4 @@
+SRC += muse.c
+AUDIO_ENABLE = yes
+COMBO_ENABLE = yes
+
From 7e0dde1f0009bc47430091736d7893148876b4ec Mon Sep 17 00:00:00 2001
From: somepin <79652090+somepin@users.noreply.github.com>
Date: Fri, 25 Mar 2022 20:45:35 -0400
Subject: [PATCH 086/221] [Keyboard] Add YDKB Grape PCB (#16661)
Co-authored-by: Drashna Jaelre
---
keyboards/ydkb/grape/config.h | 57 ++++++++
keyboards/ydkb/grape/grape.c | 16 +++
keyboards/ydkb/grape/grape.h | 47 +++++++
keyboards/ydkb/grape/info.json | 130 ++++++++++++++++++
keyboards/ydkb/grape/keymaps/default/keymap.c | 29 ++++
keyboards/ydkb/grape/keymaps/via/keymap.c | 51 +++++++
keyboards/ydkb/grape/keymaps/via/rules.mk | 2 +
keyboards/ydkb/grape/matrix.c | 96 +++++++++++++
keyboards/ydkb/grape/readme.md | 23 ++++
keyboards/ydkb/grape/rules.mk | 22 +++
10 files changed, 473 insertions(+)
create mode 100644 keyboards/ydkb/grape/config.h
create mode 100644 keyboards/ydkb/grape/grape.c
create mode 100644 keyboards/ydkb/grape/grape.h
create mode 100644 keyboards/ydkb/grape/info.json
create mode 100644 keyboards/ydkb/grape/keymaps/default/keymap.c
create mode 100644 keyboards/ydkb/grape/keymaps/via/keymap.c
create mode 100644 keyboards/ydkb/grape/keymaps/via/rules.mk
create mode 100644 keyboards/ydkb/grape/matrix.c
create mode 100644 keyboards/ydkb/grape/readme.md
create mode 100644 keyboards/ydkb/grape/rules.mk
diff --git a/keyboards/ydkb/grape/config.h b/keyboards/ydkb/grape/config.h
new file mode 100644
index 000000000000..3396f18d6142
--- /dev/null
+++ b/keyboards/ydkb/grape/config.h
@@ -0,0 +1,57 @@
+/* Copyright 2022 somepin
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x5945 // "YE"
+#define PRODUCT_ID 0x6772 // "GR"
+#define DEVICE_VER 0x0001
+#define MANUFACTURER YDKB
+#define PRODUCT Grape
+
+/* key matrix size */
+#define MATRIX_ROWS 7
+#define MATRIX_COLS 18
+
+#define MATRIX_COL_PINS { F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, B3, B2, B1, B0 }
+
+#define SN74X138_ADDRESS_PINS { D2, D1, D0 }
+
+#define LED_NUM_LOCK_PIN F1
+#define LED_CAPS_LOCK_PIN F0
+#define LED_SCROLL_LOCK_PIN E6
+#define LED_PIN_ON_STATE 0
+
+#define BACKLIGHT_PIN B7
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+
+#ifdef RGBLIGHT_ENABLE
+#define RGB_DI_PIN E6
+#define RGBLED_NUM 4
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/ydkb/grape/grape.c b/keyboards/ydkb/grape/grape.c
new file mode 100644
index 000000000000..c0d33b064bc0
--- /dev/null
+++ b/keyboards/ydkb/grape/grape.c
@@ -0,0 +1,16 @@
+/* Copyright 2022 somepin
+ *
+ * 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 .
+ */
+#include "grape.h"
diff --git a/keyboards/ydkb/grape/grape.h b/keyboards/ydkb/grape/grape.h
new file mode 100644
index 000000000000..0f20f7ea8aa0
--- /dev/null
+++ b/keyboards/ydkb/grape/grape.h
@@ -0,0 +1,47 @@
+/* Copyright 2022 somepin
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_all( \
+ K0A, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, K0K, K0L, K0N, K0P, K0Q, K0R, K0S, \
+ K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1P, K1Q, K1R, K1S, \
+ K2P, K2Q, K2R, K2S, \
+ K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K1N, K3P, K3Q, K3R, K3S, \
+ K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K4P, K4Q, K4R, K4S, \
+ K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4N, K5Q, K5R, K5S, \
+ K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K4M, K5N, K6Q, K6R, K6S, \
+ K6A, K6B, K6C, K6E, K6F, K6H, K6I, K6J, K6K, K6L, K6M, K6N, K5P, K6P \
+) { \
+ { K0A, XXX, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, K0K, K0L, XXX, K0N, K0P, K0Q, K0R, K0S }, \
+ { XXX, XXX, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, XXX, K1N, K1P, K1Q, K1R, K1S }, \
+ { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2P, K2Q, K2R, K2S }, \
+ { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3P, K3Q, K3R, K3S }, \
+ { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4P, K4Q, K4R, K4S }, \
+ { K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5P, K5Q, K5R, K5S }, \
+ { K6A, K6B, K6C, XXX, K6E, K6F, XXX, K6H, K6I, K6J, K6K, K6L, K6M, K6N, K6P, K6Q, K6R, K6S } \
+}
diff --git a/keyboards/ydkb/grape/info.json b/keyboards/ydkb/grape/info.json
new file mode 100644
index 000000000000..9024ca4d0bd0
--- /dev/null
+++ b/keyboards/ydkb/grape/info.json
@@ -0,0 +1,130 @@
+{
+ "keyboard_name": "Grape",
+ "url": "https://item.taobao.com/item.htm?id=642205244150",
+ "maintainer": "Gacathon",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ { "label": "Esc", "x": 0, "y": 0 },
+ { "label": "F1", "x": 2, "y": 0 },
+ { "label": "F2", "x": 3, "y": 0 },
+ { "label": "F3", "x": 4, "y": 0 },
+ { "label": "F4", "x": 5, "y": 0 },
+ { "label": "F5", "x": 6, "y": 0 },
+ { "label": "F6", "x": 7, "y": 0 },
+ { "label": "Insert", "x": 8.5, "y": 0 },
+ { "label": "Home", "x": 9.5, "y": 0 },
+ { "label": "PgUp", "x": 10.5, "y": 0 },
+ { "label": "PrtSc", "x": 11.5, "y": 0 },
+ { "label": "Pause", "x": 13, "y": 0 },
+ { "label": "Num Lock", "x": 16, "y": 0 },
+ { "label": "/", "x": 17, "y": 0 },
+ { "label": "*", "x": 18, "y": 0 },
+ { "label": "-", "x": 19, "y": 0 },
+ { "label": "F7", "x": 2, "y": 1 },
+ { "label": "F8", "x": 3, "y": 1 },
+ { "label": "F9", "x": 4, "y": 1 },
+ { "label": "F10", "x": 5, "y": 1 },
+ { "label": "F11", "x": 6, "y": 1 },
+ { "label": "F12", "x": 7, "y": 1 },
+ { "label": "Delete", "x": 8.5, "y": 1 },
+ { "label": "End", "x": 9.5, "y": 1 },
+ { "label": "PgDn", "x": 10.5, "y": 1 },
+ { "label": "Scroll Lock", "x": 11.5, "y": 1 },
+ { "label": "7", "x": 16, "y": 1 },
+ { "label": "8", "x": 17, "y": 1 },
+ { "label": "9", "x": 18, "y": 1 },
+ { "label": "+", "x": 19, "y": 1 },
+ { "label": "4", "x": 16, "y": 2 },
+ { "label": "5", "x": 17, "y": 2 },
+ { "label": "6", "x": 18, "y": 2 },
+ { "label": "+", "x": 19, "y": 2 },
+ { "label": "~", "x": 0, "y": 3 },
+ { "label": "!", "x": 1, "y": 3 },
+ { "label": "@", "x": 2, "y": 3 },
+ { "label": "#", "x": 3, "y": 3 },
+ { "label": "$", "x": 4, "y": 3 },
+ { "label": "%", "x": 5, "y": 3 },
+ { "label": "^", "x": 6, "y": 3 },
+ { "label": "&", "x": 7, "y": 3 },
+ { "label": "*", "x": 8, "y": 3 },
+ { "label": "(", "x": 9, "y": 3 },
+ { "label": ")", "x": 10, "y": 3 },
+ { "label": "_", "x": 11, "y": 3 },
+ { "label": "+", "x": 12, "y": 3 },
+ { "label": "Bksp", "x": 13, "y": 3 },
+ { "label": "Bksp", "x": 14, "y": 3 },
+ { "label": "1", "x": 16, "y": 3 },
+ { "label": "2", "x": 17, "y": 3 },
+ { "label": "3", "x": 18, "y": 3 },
+ { "label": "Enter", "x": 19, "y": 3 },
+ { "label": "Tab", "x": 0, "y": 4, "w": 1.5 },
+ { "label": "Q", "x": 1.5, "y": 4 },
+ { "label": "W", "x": 2.5, "y": 4 },
+ { "label": "E", "x": 3.5, "y": 4 },
+ { "label": "R", "x": 4.5, "y": 4 },
+ { "label": "T", "x": 5.5, "y": 4 },
+ { "label": "Y", "x": 6.5, "y": 4 },
+ { "label": "U", "x": 7.5, "y": 4 },
+ { "label": "I", "x": 8.5, "y": 4 },
+ { "label": "O", "x": 9.5, "y": 4 },
+ { "label": "P", "x": 10.5, "y": 4 },
+ { "label": "{", "x": 11.5, "y": 4 },
+ { "label": "}", "x": 12.5, "y": 4 },
+ { "label": "|", "x": 13.5, "y": 4, "w": 1.5 },
+ { "label": "0", "x": 16, "y": 4 },
+ { "label": "0", "x": 17, "y": 4 },
+ { "label": ".", "x": 18, "y": 4 },
+ { "label": "Enter", "x": 19, "y": 4 },
+ { "label": "Caps Lock", "x": 0, "y": 5, "w": 1.75 },
+ { "label": "A", "x": 1.75, "y": 5 },
+ { "label": "S", "x": 2.75, "y": 5 },
+ { "label": "D", "x": 3.75, "y": 5 },
+ { "label": "F", "x": 4.75, "y": 5 },
+ { "label": "G", "x": 5.75, "y": 5 },
+ { "label": "H", "x": 6.75, "y": 5 },
+ { "label": "J", "x": 7.75, "y": 5 },
+ { "label": "K", "x": 8.75, "y": 5 },
+ { "label": "L", "x": 9.75, "y": 5 },
+ { "label": ":", "x": 10.75, "y": 5 },
+ { "label": "\"", "x": 11.75, "y": 5 },
+ { "label": "Enter", "x": 12.75, "y": 5, "w": 2.25 },
+ { "label": "F13", "x": 16.5, "y": 5.25 },
+ { "label": "F14", "x": 17.5, "y": 5.25 },
+ { "label": "F15", "x": 18.5, "y": 5.25 },
+ { "label": "Shift", "x": 0, "y": 6, "w": 1.25 },
+ { "label": "Shift", "x": 1.25, "y": 6 },
+ { "label": "Z", "x": 2.25, "y": 6 },
+ { "label": "X", "x": 3.25, "y": 6 },
+ { "label": "C", "x": 4.25, "y": 6 },
+ { "label": "V", "x": 5.25, "y": 6 },
+ { "label": "B", "x": 6.25, "y": 6 },
+ { "label": "N", "x": 7.25, "y": 6 },
+ { "label": "M", "x": 8.25, "y": 6 },
+ { "label": "<", "x": 9.25, "y": 6 },
+ { "label": ">", "x": 10.25, "y": 6 },
+ { "label": "?", "x": 11.25, "y": 6 },
+ { "label": "Shift", "x": 12.25, "y": 6 },
+ { "label": "Shift", "x": 13.25, "y": 6 },
+ { "label": "\u2191", "x": 14.5, "y": 6.25 },
+ { "label": "F16", "x": 16.5, "y": 6.25 },
+ { "label": "F17", "x": 17.5, "y": 6.25 },
+ { "label": "F18", "x": 18.5, "y": 6.25 },
+ { "label": "Ctrl", "x": 0, "y": 7 },
+ { "label": "Win", "x": 1, "y": 7 },
+ { "label": "Alt", "x": 2, "y": 7 },
+ { "x": 3, "y": 7, "w": 3 },
+ { "x": 6, "y": 7, "w": 3 },
+ { "label": "Alt", "x": 9, "y": 7 },
+ { "label": "Win", "x": 10, "y": 7 },
+ { "label": "Menu", "x": 11, "y": 7 },
+ { "label": "Ctrl", "x": 12, "y": 7 },
+ { "label": "\u2190", "x": 13.5, "y": 7.25 },
+ { "label": "\u2193", "x": 14.5, "y": 7.25 },
+ { "label": "\u2192", "x": 15.5, "y": 7.25 },
+ { "label": "BTN1", "x": 17, "y": 7.25 },
+ { "label": "BTN2", "x": 18, "y": 7.25 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/ydkb/grape/keymaps/default/keymap.c b/keyboards/ydkb/grape/keymaps/default/keymap.c
new file mode 100644
index 000000000000..2704820ad96a
--- /dev/null
+++ b/keyboards/ydkb/grape/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
+/* Copyright 2022 somepin
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, KC_PAUS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_END, KC_PGDN, KC_SLCK, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PENT,
+ 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_P0, KC_P0, KC_PDOT, KC_PENT,
+ 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_F13, KC_F14, KC_F15,
+ KC_LSFT, 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_RSFT, KC_UP, KC_F16, KC_F17, KC_F18,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BTN1, KC_BTN2
+ )
+};
diff --git a/keyboards/ydkb/grape/keymaps/via/keymap.c b/keyboards/ydkb/grape/keymaps/via/keymap.c
new file mode 100644
index 000000000000..f01f63bcad97
--- /dev/null
+++ b/keyboards/ydkb/grape/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
+/* Copyright 2022 somepin
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, KC_PAUS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_END, KC_PGDN, KC_SLCK, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PENT,
+ 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_P0, KC_P0, KC_PDOT, KC_PENT,
+ 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_F13, KC_F14, KC_F15,
+ KC_LSFT, 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_RSFT, KC_UP, KC_F16, KC_F17, KC_F18,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BTN1, KC_BTN2
+ ),
+
+ [1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [2] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+};
diff --git a/keyboards/ydkb/grape/keymaps/via/rules.mk b/keyboards/ydkb/grape/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/ydkb/grape/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/ydkb/grape/matrix.c b/keyboards/ydkb/grape/matrix.c
new file mode 100644
index 000000000000..700761fa4484
--- /dev/null
+++ b/keyboards/ydkb/grape/matrix.c
@@ -0,0 +1,96 @@
+/*
+Copyright 2022 somepin
+
+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 .
+*/
+
+#include
+#include
+#include "matrix.h"
+#include "quantum.h"
+#include "sn74x138.h"
+
+static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
+
+/* All rows use a 74HC138 3 to 8 bit demultiplexer.
+ *
+ * A2 A1 A0
+ * D0 D1 D2
+ * 0: 0 0 0
+ * 1: 0 0 1
+ * 2: 0 1 0
+ * 3: 0 1 1
+ * 4: 1 0 0
+ * 5: 1 0 1
+ * 6: 1 1 0
+ */
+static void select_row(uint8_t row) {
+ sn74x138_set_addr(row);
+}
+
+static void init_pins(void) {
+ for (uint8_t x = 0; x < MATRIX_COLS; x++) {
+ setPinInputHigh(col_pins[x]);
+ }
+}
+
+static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
+ bool matrix_changed = false;
+
+ // Store last value of row prior to reading
+ matrix_row_t last_row_value = current_matrix[current_row];
+
+ // Start with a clear matrix row
+ current_matrix[current_row] = 0;
+
+ // Select row and wait for row selection to stabilize
+ select_row(current_row);
+ matrix_io_delay();
+
+ // For each col...
+ matrix_row_t row_shifter = MATRIX_ROW_SHIFTER;
+ for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
+
+ // Select the col pin to read (active low)
+ uint8_t pin_state = readPin(col_pins[col_index]);
+
+ // Populate the matrix row with the state of the col pin
+ current_matrix[current_row] |= pin_state ? 0 : (row_shifter << col_index);
+ }
+
+ // Determine if matrix changed state
+ if ((last_row_value != current_matrix[current_row]) && !(matrix_changed)) {
+ matrix_changed = true;
+ }
+
+ return matrix_changed;
+}
+
+void matrix_init_custom(void) {
+ // initialize demultiplexer
+ sn74x138_init();
+ // initialize key pins
+ init_pins();
+}
+
+bool matrix_scan_custom(matrix_row_t current_matrix[]) {
+ bool changed = false;
+
+ // Set row, read cols
+ for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
+ changed |= read_cols_on_row(current_matrix, current_row);
+ }
+
+ return changed;
+}
diff --git a/keyboards/ydkb/grape/readme.md b/keyboards/ydkb/grape/readme.md
new file mode 100644
index 000000000000..9024f38b5878
--- /dev/null
+++ b/keyboards/ydkb/grape/readme.md
@@ -0,0 +1,23 @@
+# YDKB Grape
+
+![YDKB Grape](https://i.imgur.com/TZjgC9yh.jpg)
+
+The YDKB Grape is a Cherry G80-11800/11900 replacement PCB utilizing the ATmega32U4 microcontroller.
+
+* Keyboard Maintainer: [Gacathon](https://github.com/Gacathon)
+* Hardware Supported: YDKB Grape (ATmega32U4)
+* Hardware Availability: [TaoBao](https://item.taobao.com/item.htm?id=642205244150)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ydkb/grape:default
+
+Flashing example for this keyboard:
+
+ make ydkb/grape: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
+
+To enter the bootloader, briefly press the physical reset button between Num Lock and Numpad 8 on the front of the PCB.
diff --git a/keyboards/ydkb/grape/rules.mk b/keyboards/ydkb/grape/rules.mk
new file mode 100644
index 000000000000..57b231441e35
--- /dev/null
+++ b/keyboards/ydkb/grape/rules.mk
@@ -0,0 +1,22 @@
+# 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 = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+CUSTOM_MATRIX = lite
+VPATH += drivers/gpio
+SRC += matrix.c sn74x138.c
From 084df6a288503709ddde2bfa0d64e1677fe32b29 Mon Sep 17 00:00:00 2001
From: Evelien Dekkers
Date: Sat, 26 Mar 2022 02:06:03 +0100
Subject: [PATCH 087/221] [Keyboard] Add nt210 (#16461)
Co-authored-by: Joel Challis
Co-authored-by: Ryan
---
keyboards/evyd13/nt210/config.h | 20 +++++
keyboards/evyd13/nt210/info.json | 84 +++++++++++++++++++
.../evyd13/nt210/keymaps/default/keymap.c | 21 +++++
keyboards/evyd13/nt210/keymaps/via/keymap.c | 48 +++++++++++
keyboards/evyd13/nt210/keymaps/via/rules.mk | 2 +
keyboards/evyd13/nt210/readme.md | 27 ++++++
keyboards/evyd13/nt210/rules.mk | 1 +
7 files changed, 203 insertions(+)
create mode 100644 keyboards/evyd13/nt210/config.h
create mode 100644 keyboards/evyd13/nt210/info.json
create mode 100644 keyboards/evyd13/nt210/keymaps/default/keymap.c
create mode 100644 keyboards/evyd13/nt210/keymaps/via/keymap.c
create mode 100644 keyboards/evyd13/nt210/keymaps/via/rules.mk
create mode 100644 keyboards/evyd13/nt210/readme.md
create mode 100644 keyboards/evyd13/nt210/rules.mk
diff --git a/keyboards/evyd13/nt210/config.h b/keyboards/evyd13/nt210/config.h
new file mode 100644
index 000000000000..2155d337a81e
--- /dev/null
+++ b/keyboards/evyd13/nt210/config.h
@@ -0,0 +1,20 @@
+// Copyright 2022 Evelien Dekkers (@evyd13)
+// 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
diff --git a/keyboards/evyd13/nt210/info.json b/keyboards/evyd13/nt210/info.json
new file mode 100644
index 000000000000..c467ae33a143
--- /dev/null
+++ b/keyboards/evyd13/nt210/info.json
@@ -0,0 +1,84 @@
+{
+ "manufacturer": "Evelien Dekkers",
+ "keyboard_name": "nt210",
+ "maintainer": "evyd13",
+ "bootloader": "atmel-dfu",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": false,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": ["B0", "D6", "D5", "D4"],
+ "rows": ["C4", "C5", "C6", "C7", "B7", "B6"]
+ },
+ "processor": "atmega32u2",
+ "url": "https://github.com/evyd13/nt-series/tree/main/nt-210",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x4705",
+ "vid": "0xCC3F"
+ },
+ "indicators": {
+ "num_lock": "B4"
+ },
+ "layouts": {
+ "LAYOUT_numpad_6x4": {
+ "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.5 },
+ { "matrix": [1, 1], "x": 1, "y": 1.5 },
+ { "matrix": [1, 2], "x": 2, "y": 1.5 },
+ { "matrix": [1, 3], "x": 3, "y": 1.5 },
+ { "matrix": [2, 0], "x": 0, "y": 2.5 },
+ { "matrix": [2, 1], "x": 1, "y": 2.5 },
+ { "matrix": [2, 2], "x": 2, "y": 2.5 },
+ { "h": 2, "matrix": [2, 3], "x": 3, "y": 2.5 },
+ { "matrix": [3, 0], "x": 0, "y": 3.5 },
+ { "matrix": [3, 1], "x": 1, "y": 3.5 },
+ { "matrix": [3, 2], "x": 2, "y": 3.5 },
+ { "matrix": [4, 0], "x": 0, "y": 4.5 },
+ { "matrix": [4, 1], "x": 1, "y": 4.5 },
+ { "matrix": [4, 2], "x": 2, "y": 4.5 },
+ { "h": 2, "matrix": [4, 3], "x": 3, "y": 4.5 },
+ { "matrix": [5, 0], "w": 2, "x": 0, "y": 5.5 },
+ { "matrix": [5, 2], "x": 2, "y": 5.5 }
+ ]
+ },
+ "LAYOUT_ortho_6x4": {
+ "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.5 },
+ { "matrix": [1, 1], "x": 1, "y": 1.5 },
+ { "matrix": [1, 2], "x": 2, "y": 1.5 },
+ { "matrix": [1, 3], "x": 3, "y": 1.5 },
+ { "matrix": [2, 0], "x": 0, "y": 2.5 },
+ { "matrix": [2, 1], "x": 1, "y": 2.5 },
+ { "matrix": [2, 2], "x": 2, "y": 2.5 },
+ { "matrix": [2, 3], "x": 3, "y": 2.5 },
+ { "matrix": [3, 0], "x": 0, "y": 3.5 },
+ { "matrix": [3, 1], "x": 1, "y": 3.5 },
+ { "matrix": [3, 2], "x": 2, "y": 3.5 },
+ { "matrix": [3, 3], "x": 3, "y": 3.5 },
+ { "matrix": [4, 0], "x": 0, "y": 4.5 },
+ { "matrix": [4, 1], "x": 1, "y": 4.5 },
+ { "matrix": [4, 2], "x": 2, "y": 4.5 },
+ { "matrix": [4, 3], "x": 3, "y": 4.5 },
+ { "matrix": [5, 0], "x": 0, "y": 5.5 },
+ { "matrix": [5, 1], "x": 1, "y": 5.5 },
+ { "matrix": [5, 2], "x": 2, "y": 5.5 },
+ { "matrix": [5, 3], "x": 3, "y": 5.5 }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/evyd13/nt210/keymaps/default/keymap.c b/keyboards/evyd13/nt210/keymaps/default/keymap.c
new file mode 100644
index 000000000000..6d1ba734a8d0
--- /dev/null
+++ b/keyboards/evyd13/nt210/keymaps/default/keymap.c
@@ -0,0 +1,21 @@
+// Copyright 2022 Evelien Dekkers (@evyd13)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_BASE] = LAYOUT_ortho_6x4(
+ KC_ESC, KC_TAB, KC_EQL, KC_BSPC,
+ KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_P4, KC_P5, KC_P6, KC_NO,
+ KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_NO, KC_PDOT, KC_NO),
+
+};
diff --git a/keyboards/evyd13/nt210/keymaps/via/keymap.c b/keyboards/evyd13/nt210/keymaps/via/keymap.c
new file mode 100644
index 000000000000..065fcd3a0baf
--- /dev/null
+++ b/keyboards/evyd13/nt210/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
+// Copyright 2022 Evelien Dekkers (@evyd13)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN1,
+ _FN2,
+ _FN3,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_BASE] = LAYOUT_ortho_6x4(
+ KC_ESC, KC_TAB, KC_EQL, KC_BSPC,
+ KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_P4, KC_P5, KC_P6, KC_NO,
+ KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_P0, KC_NO, KC_PDOT, KC_NO),
+
+[_FN1] = LAYOUT_ortho_6x4(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______),
+
+[_FN2] = LAYOUT_ortho_6x4(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______),
+
+[_FN3] = LAYOUT_ortho_6x4(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______),
+
+};
\ No newline at end of file
diff --git a/keyboards/evyd13/nt210/keymaps/via/rules.mk b/keyboards/evyd13/nt210/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/evyd13/nt210/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/evyd13/nt210/readme.md b/keyboards/evyd13/nt210/readme.md
new file mode 100644
index 000000000000..b6b7bc940eb5
--- /dev/null
+++ b/keyboards/evyd13/nt210/readme.md
@@ -0,0 +1,27 @@
+# nt210
+
+![nt120 PCB](https://i.imgur.com/DZAfoOlh.jpg)
+
+A custom PCB for the Leopold FC210TP.
+
+* Keyboard Maintainer: [Evelien Dekkers](https://github.com/evyd13)
+* Hardware Supported: nt-120 PCB
+* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/nt-series/tree/main/nt-210)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make evyd13/nt210:default
+
+Flashing example for this keyboard:
+
+ make evyd13/nt210: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 `RESET` if it is available
diff --git a/keyboards/evyd13/nt210/rules.mk b/keyboards/evyd13/nt210/rules.mk
new file mode 100644
index 000000000000..6e7633bfe015
--- /dev/null
+++ b/keyboards/evyd13/nt210/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
From c05e8afe454bf3706d69314c251dc5266c557007 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Sun, 27 Mar 2022 05:38:09 +1100
Subject: [PATCH 088/221] Joystick feature updates (#16732)
* Joystick feature updates
* Move new functions to joystick.h
* Docs
---
docs/feature_joystick.md | 2 +
.../battleship_gamepad/battleship_gamepad.c | 2 -
.../misterdeck/keymaps/default/keymap.c | 2 -
.../misterdeck/keymaps/nobuttons/keymap.c | 2 -
.../onekey/keymaps/joystick/keymap.c | 2 -
keyboards/lime/keymaps/default/keymap.c | 1 -
quantum/joystick.c | 37 ++++++++++++++++---
quantum/joystick.h | 9 +++--
quantum/process_keycode/process_joystick.c | 36 +++++-------------
quantum/quantum.h | 4 ++
10 files changed, 52 insertions(+), 45 deletions(-)
diff --git a/docs/feature_joystick.md b/docs/feature_joystick.md
index fe33517a1619..2635298587d4 100644
--- a/docs/feature_joystick.md
+++ b/docs/feature_joystick.md
@@ -150,3 +150,5 @@ Note that the supported AVR MCUs have a 10-bit ADC, and 12-bit for most STM32 MC
Joystick buttons are normal Quantum keycodes, defined as `JS_BUTTON0` to `JS_BUTTON31`, depending on the number of buttons you have configured.
To trigger a joystick button, just add the corresponding keycode to your keymap.
+
+You can also trigger joystick buttons in code with `register_joystick_button(button)` and `unregister_joystick_button(button)`, where `button` is the 0-based button index (0 = button 1).
diff --git a/keyboards/handwired/battleship_gamepad/battleship_gamepad.c b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
index 918a3852d0a7..2c9de15a9ffb 100644
--- a/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
+++ b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
@@ -15,8 +15,6 @@
*/
#include "battleship_gamepad.h"
-#include "joystick.h"
-#include "analog.h"
/* joystick config */
joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {
diff --git a/keyboards/handwired/misterdeck/keymaps/default/keymap.c b/keyboards/handwired/misterdeck/keymaps/default/keymap.c
index 217d25551c7f..b8ed3cb9d927 100644
--- a/keyboards/handwired/misterdeck/keymaps/default/keymap.c
+++ b/keyboards/handwired/misterdeck/keymaps/default/keymap.c
@@ -16,8 +16,6 @@
#include QMK_KEYBOARD_H
-#include "joystick.h"
-
enum layer_names {
NORMAL_LAYER = 0
};
diff --git a/keyboards/handwired/misterdeck/keymaps/nobuttons/keymap.c b/keyboards/handwired/misterdeck/keymaps/nobuttons/keymap.c
index d4c52be35d98..5c69d2bc2121 100644
--- a/keyboards/handwired/misterdeck/keymaps/nobuttons/keymap.c
+++ b/keyboards/handwired/misterdeck/keymaps/nobuttons/keymap.c
@@ -16,8 +16,6 @@
#include QMK_KEYBOARD_H
-#include "joystick.h"
-
enum layer_names {
NORMAL_LAYER = 0
};
diff --git a/keyboards/handwired/onekey/keymaps/joystick/keymap.c b/keyboards/handwired/onekey/keymaps/joystick/keymap.c
index f427b9d77d40..7a2f138b28b7 100644
--- a/keyboards/handwired/onekey/keymaps/joystick/keymap.c
+++ b/keyboards/handwired/onekey/keymaps/joystick/keymap.c
@@ -1,7 +1,5 @@
#include QMK_KEYBOARD_H
-#include "joystick.h"
-
#ifndef ADC_PIN
# define ADC_PIN F6
#endif
diff --git a/keyboards/lime/keymaps/default/keymap.c b/keyboards/lime/keymaps/default/keymap.c
index 2d904d36db55..eade4d4183ac 100644
--- a/keyboards/lime/keymaps/default/keymap.c
+++ b/keyboards/lime/keymaps/default/keymap.c
@@ -17,7 +17,6 @@
#include QMK_KEYBOARD_H
#ifdef JOYSTICK_ENABLE
-# include "joystick.h"
# include "analog.h"
#endif
diff --git a/quantum/joystick.c b/quantum/joystick.c
index 7b87201aef98..86b2c64036b1 100644
--- a/quantum/joystick.c
+++ b/quantum/joystick.c
@@ -1,13 +1,38 @@
#include "joystick.h"
-joystick_t joystick_status = {.buttons = {0},
- .axes =
- {
+// clang-format off
+joystick_t joystick_status = {
+ .buttons = {0},
+ .axes = {
#if JOYSTICK_AXES_COUNT > 0
- 0
+ 0
#endif
- },
- .status = 0};
+ },
+ .status = 0
+};
+// clang-format on
// array defining the reading of analog values for each axis
__attribute__((weak)) joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {};
+
+// to be implemented in the hid protocol library
+void send_joystick_packet(joystick_t *joystick);
+
+void joystick_flush(void) {
+ if ((joystick_status.status & JS_UPDATED) > 0) {
+ send_joystick_packet(&joystick_status);
+ joystick_status.status &= ~JS_UPDATED;
+ }
+}
+
+void register_joystick_button(uint8_t button) {
+ joystick_status.buttons[button / 8] |= 1 << (button % 8);
+ joystick_status.status |= JS_UPDATED;
+ joystick_flush();
+}
+
+void unregister_joystick_button(uint8_t button) {
+ joystick_status.buttons[button / 8] &= ~(1 << (button % 8));
+ joystick_status.status |= JS_UPDATED;
+ joystick_flush();
+}
diff --git a/quantum/joystick.h b/quantum/joystick.h
index 9156491acaad..002df3a6d9aa 100644
--- a/quantum/joystick.h
+++ b/quantum/joystick.h
@@ -1,8 +1,7 @@
#pragma once
-#include "quantum.h"
-
#include
+#include "gpio.h"
#ifndef JOYSTICK_BUTTON_COUNT
# define JOYSTICK_BUTTON_COUNT 8
@@ -58,5 +57,7 @@ typedef struct {
extern joystick_t joystick_status;
-// to be implemented in the hid protocol library
-void send_joystick_packet(joystick_t *joystick);
+void joystick_flush(void);
+
+void register_joystick_button(uint8_t button);
+void unregister_joystick_button(uint8_t button);
diff --git a/quantum/process_keycode/process_joystick.c b/quantum/process_keycode/process_joystick.c
index 2fb092c5736f..8c3e71616f3a 100644
--- a/quantum/process_keycode/process_joystick.c
+++ b/quantum/process_keycode/process_joystick.c
@@ -6,41 +6,25 @@
#include
#include
-bool process_joystick_buttons(uint16_t keycode, keyrecord_t *record);
-
bool process_joystick(uint16_t keycode, keyrecord_t *record) {
- if (process_joystick_buttons(keycode, record) && (joystick_status.status & JS_UPDATED) > 0) {
- send_joystick_packet(&joystick_status);
- joystick_status.status &= ~JS_UPDATED;
+ switch (keycode) {
+ case JS_BUTTON0 ... JS_BUTTON_MAX:
+ if (record->event.pressed) {
+ register_joystick_button(keycode - JS_BUTTON0);
+ } else {
+ unregister_joystick_button(keycode - JS_BUTTON0);
+ }
+ return false;
}
-
return true;
}
__attribute__((weak)) void joystick_task(void) {
- if (process_joystick_analogread() && (joystick_status.status & JS_UPDATED)) {
- send_joystick_packet(&joystick_status);
- joystick_status.status &= ~JS_UPDATED;
+ if (process_joystick_analogread()) {
+ joystick_flush();
}
}
-bool process_joystick_buttons(uint16_t keycode, keyrecord_t *record) {
- if (keycode < JS_BUTTON0 || keycode > JS_BUTTON_MAX) {
- return true;
- } else {
- uint8_t button_idx = (keycode - JS_BUTTON0);
- if (record->event.pressed) {
- joystick_status.buttons[button_idx / 8] |= 1 << (button_idx % 8);
- } else {
- joystick_status.buttons[button_idx / 8] &= ~(1 << (button_idx % 8));
- }
-
- joystick_status.status |= JS_UPDATED;
- }
-
- return true;
-}
-
uint16_t savePinState(pin_t pin) {
#ifdef __AVR__
uint8_t pinNumber = pin & 0xF;
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 020e45594192..f87e5f19161e 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -200,6 +200,10 @@ extern layer_state_t layer_state;
# include "dynamic_keymap.h"
#endif
+#ifdef JOYSTICK_ENABLE
+# include "joystick.h"
+#endif
+
#ifdef VIA_ENABLE
# include "via.h"
#endif
From 55e5daa868c692e686a96997a4a12cb65c348382 Mon Sep 17 00:00:00 2001
From: Erovia
Date: Sat, 26 Mar 2022 19:15:25 +0000
Subject: [PATCH 089/221] Fix bug when 'info.json' lookup escapes keyboard dir
(#16734)
---
lib/python/qmk/info.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index b86eaa059f11..fd8a3062b76d 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -753,9 +753,9 @@ def find_info_json(keyboard):
# Add in parent folders for least specific
for _ in range(5):
- info_jsons.append(keyboard_parent / 'info.json')
- if keyboard_parent.parent == base_path:
+ if keyboard_parent == base_path:
break
+ info_jsons.append(keyboard_parent / 'info.json')
keyboard_parent = keyboard_parent.parent
# Return a list of the info.json files that actually exist
From f874984b96b273e3631bf86fb14d9468f427fa06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=AA=20Nguy=E1=BB=85n=20Ho=C3=A0ng=20Nh=C3=A2n?=
Date: Sun, 27 Mar 2022 02:35:19 +0700
Subject: [PATCH 090/221] Fix typos in matrix/noah readme (#16735)
Change "keybaord" to keyboard
---
keyboards/matrix/noah/readme.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/keyboards/matrix/noah/readme.md b/keyboards/matrix/noah/readme.md
index 788fc187272c..5b32b15a006e 100644
--- a/keyboards/matrix/noah/readme.md
+++ b/keyboards/matrix/noah/readme.md
@@ -10,10 +10,10 @@ This was the first 65% keyboard made by the Matrix team, it had the following fe
Keyboard Maintainer: [astro](https://github.com/yulei)
Hardware Supported: Matrix NOAH keyboard
-Hardware Availability: [NOAH Keybaord](https://geekhack.org/index.php?topic=102300.0)
+Hardware Availability: [NOAH Keyboard](https://geekhack.org/index.php?topic=102300.0)
Make example for this keyboard (after setting up your build environment):
make matrix/noah:default
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
\ No newline at end of file
+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).
From 5fae1ec9c3aa105848da8fa7aa249918917b9fd6 Mon Sep 17 00:00:00 2001
From: Shandon Anderson
Date: Sat, 26 Mar 2022 22:02:59 -0400
Subject: [PATCH 091/221] [Keyboard] Add Mino Hotswap PCB (#16664)
Co-authored-by: Shandon Anderson
---
keyboards/mino/hotswap/config.h | 56 +++++
keyboards/mino/hotswap/hotswap.c | 17 ++
keyboards/mino/hotswap/hotswap.h | 40 ++++
keyboards/mino/hotswap/info.json | 60 +++++
keyboards/mino/hotswap/rules.mk | 19 ++
keyboards/mino/keymaps/default/keymap.c | 290 +++++++++++++++++++++++
keyboards/mino/keymaps/via/keymap.c | 299 ++++++++++++++++++++++++
keyboards/mino/keymaps/via/rules.mk | 3 +
keyboards/mino/mino.c | 16 ++
keyboards/mino/mino.h | 23 ++
keyboards/mino/readme.md | 27 +++
11 files changed, 850 insertions(+)
create mode 100644 keyboards/mino/hotswap/config.h
create mode 100644 keyboards/mino/hotswap/hotswap.c
create mode 100644 keyboards/mino/hotswap/hotswap.h
create mode 100644 keyboards/mino/hotswap/info.json
create mode 100644 keyboards/mino/hotswap/rules.mk
create mode 100644 keyboards/mino/keymaps/default/keymap.c
create mode 100644 keyboards/mino/keymaps/via/keymap.c
create mode 100644 keyboards/mino/keymaps/via/rules.mk
create mode 100644 keyboards/mino/mino.c
create mode 100644 keyboards/mino/mino.h
create mode 100644 keyboards/mino/readme.md
diff --git a/keyboards/mino/hotswap/config.h b/keyboards/mino/hotswap/config.h
new file mode 100644
index 000000000000..27ec49f3799c
--- /dev/null
+++ b/keyboards/mino/hotswap/config.h
@@ -0,0 +1,56 @@
+/*
+Copyright 2022 ShandonCodes
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x7877
+#define PRODUCT_ID 0x0002
+#define DEVICE_VER 0x0001
+#define MANUFACTURER ShandonCodes
+#define PRODUCT Mino
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D3, C6, D4, D2}
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7}
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/mino/hotswap/hotswap.c b/keyboards/mino/hotswap/hotswap.c
new file mode 100644
index 000000000000..46f2f9aef097
--- /dev/null
+++ b/keyboards/mino/hotswap/hotswap.c
@@ -0,0 +1,17 @@
+/* Copyright 2022 ShandonCodes
+ *
+ * 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 .
+ */
+
+#include "hotswap.h"
diff --git a/keyboards/mino/hotswap/hotswap.h b/keyboards/mino/hotswap/hotswap.h
new file mode 100644
index 000000000000..fc55cc8c2b34
--- /dev/null
+++ b/keyboards/mino/hotswap/hotswap.h
@@ -0,0 +1,40 @@
+/* Copyright 2022 ShandonCodes
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_default( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k3b, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+ k30, k31, k32, k33, k35, k37, k38, k39, k3a \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b}, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b}, \
+ { k30, k31, k32, k33, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b}, \
+}
+
diff --git a/keyboards/mino/hotswap/info.json b/keyboards/mino/hotswap/info.json
new file mode 100644
index 000000000000..996dcf3b62a2
--- /dev/null
+++ b/keyboards/mino/hotswap/info.json
@@ -0,0 +1,60 @@
+{
+ "keyboard_name": "Mino",
+ "url": "https://qmk.fm/keyboards/",
+ "maintainer": "ShandonCodes",
+ "layouts": {
+ "LAYOUT_default": {
+ "layout": [
+ {"x": 0, "y": 0},
+ {"x": 1, "y": 0},
+ {"x": 2, "y": 0},
+ {"x": 3, "y": 0},
+ {"x": 4, "y": 0},
+ {"x": 5, "y": 0},
+ {"x": 6, "y": 0},
+ {"x": 7, "y": 0},
+ {"x": 8, "y": 0},
+ {"x": 9, "y": 0},
+ {"x": 10, "y": 0},
+ {"x": 11, "y": 0},
+ {"x": 12, "y": 0},
+
+ {"x": 0, "y": 1, "w": 1.25},
+ {"x": 1.25, "y": 1},
+ {"x": 2.25, "y": 1},
+ {"x": 3.25, "y": 1},
+ {"x": 4.25, "y": 1},
+ {"x": 5.25, "y": 1},
+ {"x": 6.25, "y": 1},
+ {"x": 7.25, "y": 1},
+ {"x": 8.25, "y": 1},
+ {"x": 9.25, "y": 1},
+ {"x": 10.25, "y": 1},
+ {"x": 11.25, "y": 1, "w": 1.75},
+
+ {"x": 0, "y": 2, "w": 1.75},
+ {"x": 1.75, "y": 2},
+ {"x": 2.75, "y": 2},
+ {"x": 3.75, "y": 2},
+ {"x": 4.75, "y": 2},
+ {"x": 5.75, "y": 2},
+ {"x": 6.75, "y": 2},
+ {"x": 7.75, "y": 2},
+ {"x": 8.75, "y": 2},
+ {"x": 9.75, "y": 2},
+ {"x": 10.75, "y": 2},
+ {"x": 11.75, "y": 2, "w": 1.25},
+
+ {"x": 0, "y": 3, "w": 1.25},
+ {"x": 1.25, "y": 3},
+ {"x": 2.25, "y": 3, "w": 1.25},
+ {"x": 3.5, "y": 3, "w": 2.25},
+ {"x": 5.75, "y": 3},
+ {"x": 6.75, "y": 3, "w": 2.75},
+ {"x": 9.5, "y": 3, "w": 1.25},
+ {"x": 10.75, "y": 3},
+ {"x": 11.75, "y": 3, "w": 1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/mino/hotswap/rules.mk b/keyboards/mino/hotswap/rules.mk
new file mode 100644
index 000000000000..64d04b189b48
--- /dev/null
+++ b/keyboards/mino/hotswap/rules.mk
@@ -0,0 +1,19 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# 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
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+OLED_ENABLE = yes
+WPM_ENABLE = yes
diff --git a/keyboards/mino/keymaps/default/keymap.c b/keyboards/mino/keymaps/default/keymap.c
new file mode 100644
index 000000000000..2c9dcecd4acf
--- /dev/null
+++ b/keyboards/mino/keymaps/default/keymap.c
@@ -0,0 +1,290 @@
+/* Copyright 2022 ShandonCodes
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _1,
+ _2
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_default(
+ KC_ESCAPE, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_GRV, KC_BSPACE,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_ENTER,
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT,
+ KC_LCTRL, KC_LGUI, KC_LALT, KC_SPACE, KC_DEL, KC_SPACE, MO(_1), MO(_2), KC_RCTRL
+ ),
+ [_1] = LAYOUT_default(
+ XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, KC_DEL,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_QUOT,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+ [_2] = LAYOUT_default(
+ KC_UP, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX,
+ KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ )
+};
+
+#ifdef OLED_ENABLE
+#define FRAMES 5
+#define ANIMATION_SIZE 512
+#define TAP_SPEED 30
+
+uint8_t current_frame = 0;
+uint32_t anim_timer = 0;
+uint32_t anim_sleep = 0;
+uint32_t ANIM_FRAME_DURATION = 1000;
+
+static void render_animation(void) {
+ static const char PROGMEM animation_frames[FRAMES][ANIMATION_SIZE] = {
+ // 'Base', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0,
+ 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_1', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x4c, 0x4c, 0xfc, 0xfc, 0x4c,
+ 0x4c, 0xfc, 0xc0, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x04,
+ 0x04, 0x07, 0x07, 0x04, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0,
+ 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_2', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0xc0, 0x40,
+ 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x04, 0x3f, 0x7f, 0x44,
+ 0x44, 0x7f, 0x7c, 0x44, 0x44, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0,
+ 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_3', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x44, 0x44, 0xfc, 0xfc, 0x44,
+ 0x44, 0xfc, 0xc0, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x43, 0x47, 0xc4,
+ 0x44, 0x47, 0x47, 0xc4, 0x44, 0x47, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_4', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0xc0, 0x40,
+ 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc4, 0x44, 0x7f, 0x7f, 0xe6,
+ 0x66, 0x7f, 0x7e, 0xe4, 0x64, 0x7c, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f}
+ };
+
+ void animate_phase(void) {
+ current_frame = (current_frame + 1) % FRAMES;
+ oled_write_raw_P(animation_frames[current_frame], ANIMATION_SIZE);
+ }
+
+ if (get_current_wpm() != 000) {
+ oled_on(); // not essential but turns on animation OLED with any alpha keypress
+ if (get_current_wpm() > TAP_SPEED){
+ ANIM_FRAME_DURATION = 100;
+ } else {
+ ANIM_FRAME_DURATION = 1000;
+ }
+ if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
+ anim_timer = timer_read32();
+ animate_phase();
+ }
+ anim_sleep = timer_read32();
+ } else {
+ if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
+ oled_off();
+ } else {
+ if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
+ anim_timer = timer_read32();
+ animate_phase();
+ }
+ }
+ }
+}
+
+static void render_status(void) {
+ // Host Keyboard Layer Status
+ oled_write_ln_P(PSTR("Layer"), false);
+ switch (get_highest_layer(layer_state)) {
+ case _BASE:
+ oled_write_ln_P(PSTR("Base"), false);
+ break;
+ case _1:
+ oled_write_ln_P(PSTR("1"), false);
+ break;
+ case _2:
+ oled_write_ln_P(PSTR("2"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undefined"), false);
+ }
+}
+
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ return OLED_ROTATION_270;
+}
+
+bool oled_task_user(void) {
+ render_animation();
+ render_status();
+
+ oled_write_ln_P(PSTR("WPM:"), false);
+ oled_write_ln(get_u8_str(get_current_wpm(), '0'), false);
+
+ return false;
+}
+#endif
diff --git a/keyboards/mino/keymaps/via/keymap.c b/keyboards/mino/keymaps/via/keymap.c
new file mode 100644
index 000000000000..597b854052fa
--- /dev/null
+++ b/keyboards/mino/keymaps/via/keymap.c
@@ -0,0 +1,299 @@
+/* Copyright 2021 ShandonCodes
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _0,
+ _1,
+ _2,
+ _3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_0] = LAYOUT_default(
+ KC_ESCAPE, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_GRV, KC_BSPACE,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_ENTER,
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT,
+ KC_LCTRL, KC_LGUI, KC_LALT, KC_SPACE, KC_DEL, KC_SPACE, MO(_1), MO(_2), KC_RCTRL
+ ),
+ [_1] = LAYOUT_default(
+ XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, KC_DEL,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+ [_2] = LAYOUT_default(
+ KC_UP, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX,
+ KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+ [_3] = LAYOUT_default(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ )
+};
+
+#ifdef OLED_ENABLE
+#define FRAMES 5
+#define ANIMATION_SIZE 512
+#define TAP_SPEED 30
+
+uint8_t current_frame = 0;
+uint32_t anim_timer = 0;
+uint32_t anim_sleep = 0;
+uint32_t ANIM_FRAME_DURATION = 1000;
+
+static void render_animation(void) {
+ static const char PROGMEM animation_frames[FRAMES][ANIMATION_SIZE] = {
+ // 'Base', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0,
+ 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_1', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x4c, 0x4c, 0xfc, 0xfc, 0x4c,
+ 0x4c, 0xfc, 0xc0, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x04,
+ 0x04, 0x07, 0x07, 0x04, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0,
+ 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_2', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0xc0, 0x40,
+ 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x04, 0x3f, 0x7f, 0x44,
+ 0x44, 0x7f, 0x7c, 0x44, 0x44, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0xc0,
+ 0x40, 0x40, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_3', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x44, 0x44, 0xfc, 0xfc, 0x44,
+ 0x44, 0xfc, 0xc0, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x43, 0x47, 0xc4,
+ 0x44, 0x47, 0x47, 0xc4, 0x44, 0x47, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f},
+
+ // 'Frame_4', 32x128px
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0xc0, 0x40,
+ 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc4, 0x44, 0x7f, 0x7f, 0xe6,
+ 0x66, 0x7f, 0x7e, 0xe4, 0x64, 0x7c, 0x40, 0xc0, 0xc0, 0x40, 0x40, 0xc1, 0xc3, 0x43, 0x43, 0xc3,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x66, 0xe6, 0xfc, 0x20, 0x20, 0xff, 0xe6, 0x66, 0x66, 0xff,
+ 0xe6, 0x26, 0x26, 0x67, 0xe6, 0x26, 0x26, 0xe7, 0xff, 0x66, 0x66, 0xff, 0x7f, 0x26, 0x26, 0x3f,
+ 0xe0, 0x20, 0x20, 0x20, 0xff, 0x22, 0x22, 0xff, 0xff, 0x22, 0x22, 0xff, 0xe3, 0x22, 0x22, 0xe3,
+ 0x3f, 0x22, 0x22, 0xe2, 0x3f, 0x22, 0x22, 0x3f, 0xff, 0x22, 0x22, 0xff, 0x22, 0x00, 0x00, 0x00,
+ 0xff, 0x33, 0x33, 0x33, 0xff, 0x1f, 0x13, 0x13, 0xff, 0xff, 0x33, 0x33, 0xff, 0x33, 0x13, 0x13,
+ 0x1f, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x33, 0xff, 0x33, 0x33, 0xff, 0x02, 0x00, 0x00, 0x00,
+ 0xff, 0x11, 0x11, 0x91, 0xff, 0xf0, 0x10, 0x10, 0xff, 0xff, 0x11, 0x11, 0xff, 0x9b, 0x11, 0x11,
+ 0xff, 0x91, 0x11, 0x91, 0xff, 0x11, 0x11, 0x1f, 0x1f, 0x11, 0x11, 0x1f, 0x01, 0x00, 0x00, 0x00,
+ 0xff, 0x99, 0x99, 0x99, 0xff, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9, 0xf9, 0x99, 0x99, 0xf9,
+ 0x9f, 0x99, 0x99, 0xf9, 0x1f, 0x19, 0x19, 0x1f, 0xff, 0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0xff,
+ 0xf8, 0x88, 0x88, 0x88, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff, 0xff, 0x89, 0x89, 0xff,
+ 0x88, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x88, 0xf8, 0x80, 0x80, 0x80, 0xff, 0xc9, 0x89, 0x89, 0xff,
+ 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x40, 0x40, 0xcc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0xcc, 0x48, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xfc, 0xff, 0xcc, 0xcc, 0xff, 0xff, 0xcc, 0xcc, 0xff,
+ 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f,
+ 0x7c, 0x7c, 0x7c, 0x7f, 0x7c, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f, 0x7f, 0x7c, 0x7c, 0x7f}
+ };
+
+ void animate_phase(void) {
+ current_frame = (current_frame + 1) % FRAMES;
+ oled_write_raw_P(animation_frames[current_frame], ANIMATION_SIZE);
+ }
+
+ if (get_current_wpm() != 000) {
+ oled_on(); // not essential but turns on animation OLED with any alpha keypress
+ if (get_current_wpm() > TAP_SPEED){
+ ANIM_FRAME_DURATION = 100;
+ } else {
+ ANIM_FRAME_DURATION = 1000;
+ }
+ if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
+ anim_timer = timer_read32();
+ animate_phase();
+ }
+ anim_sleep = timer_read32();
+ } else {
+ if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
+ oled_off();
+ } else {
+ if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
+ anim_timer = timer_read32();
+ animate_phase();
+ }
+ }
+ }
+}
+
+static void render_status(void) {
+ // Host Keyboard Layer Status
+ oled_write_ln_P(PSTR("Layer"), false);
+ switch (get_highest_layer(layer_state)) {
+ case _0:
+ oled_write_ln_P(PSTR("Base"), false);
+ break;
+ case _1:
+ oled_write_ln_P(PSTR("1"), false);
+ break;
+ case _2:
+ oled_write_ln_P(PSTR("2"), false);
+ break;
+ case _3:
+ oled_write_ln_P(PSTR("3"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undefined"), false);
+ }
+}
+
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ return OLED_ROTATION_270;
+}
+
+bool oled_task_user(void) {
+ render_animation();
+ render_status();
+
+ oled_write_ln_P(PSTR("WPM:"), false);
+ oled_write_ln(get_u8_str(get_current_wpm(), '0'), false);
+
+ return false;
+}
+#endif
diff --git a/keyboards/mino/keymaps/via/rules.mk b/keyboards/mino/keymaps/via/rules.mk
new file mode 100644
index 000000000000..a4ac61477529
--- /dev/null
+++ b/keyboards/mino/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+OLED_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/mino/mino.c b/keyboards/mino/mino.c
new file mode 100644
index 000000000000..dc9e6d9c0126
--- /dev/null
+++ b/keyboards/mino/mino.c
@@ -0,0 +1,16 @@
+/* Copyright 2022 ShandonCodes
+ *
+ * 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 .
+ */
+#include "mino.h"
\ No newline at end of file
diff --git a/keyboards/mino/mino.h b/keyboards/mino/mino.h
new file mode 100644
index 000000000000..fa98480c27f8
--- /dev/null
+++ b/keyboards/mino/mino.h
@@ -0,0 +1,23 @@
+/* Copyright 2022 ShandonCodes
+ *
+ * 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 .
+ */
+
+ #pragma once
+
+#include "quantum.h"
+
+#ifdef KEYBOARD_mino_hotswap
+# include "hotswap.h"
+#endif
\ No newline at end of file
diff --git a/keyboards/mino/readme.md b/keyboards/mino/readme.md
new file mode 100644
index 000000000000..a6a725b2a066
--- /dev/null
+++ b/keyboards/mino/readme.md
@@ -0,0 +1,27 @@
+# mino
+
+![Mino](https://i.imgur.com/f5kHu8Qh.jpg)
+
+A 47 key board with a retro twist.
+
+* Keyboard Maintainer: [ShandonCodes](https://github.com/ShandonCodes)
+* Hardware Supported: Mino PCB
+* Hardware Availability: Groupbuy
+
+## 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 `RESET` if it is available. For the default keymap it is the middle spacebar on the second layer.
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mino/hotswap:default
+
+Flashing example for this keyboard:
+
+ make mino/hotswap: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).
From 8c0198334c5a76b93530d6edd9b11ea99ea40018 Mon Sep 17 00:00:00 2001
From: Erovia
Date: Sun, 27 Mar 2022 21:28:36 +0100
Subject: [PATCH 092/221] CLI: Lint non-data driven macros in info.json
(#16739)
* CLI: Lint non-data driven macros in info.json
Macros in info.json should either have the "matrix" key with the matrix
data or should should be also present in .h
* Add verification of matrix data
* Use generic '.h' in output
* Add keyboard name to output
* Make C layout macro finding more robust
The old code missed C macros if they had whitespace between '#' and
'define' or had whitespace before '#'.
---
lib/python/qmk/c_parse.py | 3 ++-
lib/python/qmk/cli/lint.py | 7 +++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/lib/python/qmk/c_parse.py b/lib/python/qmk/c_parse.py
index e7d44a514fa3..72be690019fa 100644
--- a/lib/python/qmk/c_parse.py
+++ b/lib/python/qmk/c_parse.py
@@ -10,6 +10,7 @@
default_key_entry = {'x': -1, 'y': 0, 'w': 1}
single_comment_regex = re.compile(r'\s+/[/*].*$')
multi_comment_regex = re.compile(r'/\*(.|\n)*?\*/', re.MULTILINE)
+layout_macro_define_regex = re.compile(r'^#\s*define')
def strip_line_comment(string):
@@ -51,7 +52,7 @@ def find_layouts(file):
file_contents = file_contents.replace('\\\n', '')
for line in file_contents.split('\n'):
- if line.startswith('#define') and '(' in line and 'LAYOUT' in line:
+ if layout_macro_define_regex.match(line.lstrip()) and '(' in line and 'LAYOUT' in line:
# We've found a LAYOUT macro
macro_name, layout, matrix = _parse_layout_macro(line.strip())
diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py
index 96593ed69b7a..af057b41101a 100644
--- a/lib/python/qmk/cli/lint.py
+++ b/lib/python/qmk/cli/lint.py
@@ -116,6 +116,13 @@ def lint(cli):
if not keymap_check(kb, cli.config.lint.keymap):
ok = False
+ # Check if all non-data driven macros exist in
+ for layout, data in keyboard_info['layouts'].items():
+ # Matrix data should be a list with exactly two integers: [0, 1]
+ if not data['c_macro'] and not all('matrix' in key_data.keys() or len(key_data) == 2 or all(isinstance(n, int) for n in key_data) for key_data in data['layout']):
+ cli.log.error(f'{kb}: "{layout}" has no "matrix" definition in either "info.json" or ".h"!')
+ ok = False
+
# Report status
if not ok:
failed.append(kb)
From 119abc4375ba0cbeecb5c0394342c0260c999fba Mon Sep 17 00:00:00 2001
From: Stefan Kerkmann
Date: Mon, 28 Mar 2022 00:07:25 +0200
Subject: [PATCH 093/221] Refactor writePin to work with statements (#16738)
---
platforms/chibios/gpio.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/platforms/chibios/gpio.h b/platforms/chibios/gpio.h
index eb44a18f9c3e..80551abac583 100644
--- a/platforms/chibios/gpio.h
+++ b/platforms/chibios/gpio.h
@@ -31,7 +31,14 @@ typedef ioline_t pin_t;
#define writePinHigh(pin) palSetLine(pin)
#define writePinLow(pin) palClearLine(pin)
-#define writePin(pin, level) ((level) ? (writePinHigh(pin)) : (writePinLow(pin)))
+#define writePin(pin, level) \
+ do { \
+ if (level) { \
+ writePinHigh(pin); \
+ } else { \
+ writePinLow(pin); \
+ } \
+ } while (0)
#define readPin(pin) palReadLine(pin)
From 9b24abf251b7d80c1e0006bea9a056d23dc89899 Mon Sep 17 00:00:00 2001
From: Moritz
Date: Mon, 28 Mar 2022 18:46:38 +0200
Subject: [PATCH 094/221] [Keyboard] Change linworks Dolice product ID to
non-duplicate value (#16745)
---
keyboards/linworks/dolice/config.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyboards/linworks/dolice/config.h b/keyboards/linworks/dolice/config.h
index b42fda933f26..1523c7270252 100644
--- a/keyboards/linworks/dolice/config.h
+++ b/keyboards/linworks/dolice/config.h
@@ -18,7 +18,7 @@ along with this program. If not, see .
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4C58 //"LX"
-#define PRODUCT_ID 0x0004
+#define PRODUCT_ID 0x0005
#define DEVICE_VER 0x0001
#define MANUFACTURER KLC
#define PRODUCT Dolice
From 6cdf230a20e34302f54db018c18063395345757f Mon Sep 17 00:00:00 2001
From: m40-dev <72697013+m40-dev@users.noreply.github.com>
Date: Tue, 29 Mar 2022 21:18:39 +0200
Subject: [PATCH 095/221] [Keyboard] handwired/m40/5x5_macropad (#16288)
* Adding the custom handwired 5x5 macropad.
* Update keyboards/handwired/m40/5x5_macropad/readme.md
* Update keyboards/handwired/m40/5x5_macropad/rules.mk
* Update keyboards/handwired/m40/5x5_macropad/readme.md
* Update readme.md
fixed the github link to my profile
* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.c
* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.h
* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.h
* Update keyboards/handwired/m40/5x5_macropad/config.h
* Update keyboards/handwired/m40/5x5_macropad/readme.md
* Update keyboards/handwired/m40/5x5_macropad/config.h
* Update keyboards/handwired/m40/5x5_macropad/readme.md
* Update keyboards/handwired/m40/5x5_macropad/keymaps/default/keymap.c
* Apply suggestions from code review
* added discord Id for maintainer contact
* Update keyboards/handwired/m40/5x5_macropad/readme.md
* Update keyboards/handwired/m40/5x5_macropad/info.json
---
.../handwired/m40/5x5_macropad/5x5_macropad.c | 4 +
.../handwired/m40/5x5_macropad/5x5_macropad.h | 27 ++++++
keyboards/handwired/m40/5x5_macropad/config.h | 88 +++++++++++++++++++
.../handwired/m40/5x5_macropad/info.json | 41 +++++++++
.../m40/5x5_macropad/keymaps/default/keymap.c | 26 ++++++
.../5x5_macropad/keymaps/default/readme.md | 1 +
.../handwired/m40/5x5_macropad/readme.md | 26 ++++++
keyboards/handwired/m40/5x5_macropad/rules.mk | 22 +++++
8 files changed, 235 insertions(+)
create mode 100644 keyboards/handwired/m40/5x5_macropad/5x5_macropad.c
create mode 100644 keyboards/handwired/m40/5x5_macropad/5x5_macropad.h
create mode 100644 keyboards/handwired/m40/5x5_macropad/config.h
create mode 100644 keyboards/handwired/m40/5x5_macropad/info.json
create mode 100644 keyboards/handwired/m40/5x5_macropad/keymaps/default/keymap.c
create mode 100644 keyboards/handwired/m40/5x5_macropad/keymaps/default/readme.md
create mode 100644 keyboards/handwired/m40/5x5_macropad/readme.md
create mode 100644 keyboards/handwired/m40/5x5_macropad/rules.mk
diff --git a/keyboards/handwired/m40/5x5_macropad/5x5_macropad.c b/keyboards/handwired/m40/5x5_macropad/5x5_macropad.c
new file mode 100644
index 000000000000..d99d41a49b9c
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/5x5_macropad.c
@@ -0,0 +1,4 @@
+// Copyright 2022 Tomek (@m40-dev)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "5x5_macropad.h"
\ No newline at end of file
diff --git a/keyboards/handwired/m40/5x5_macropad/5x5_macropad.h b/keyboards/handwired/m40/5x5_macropad/5x5_macropad.h
new file mode 100644
index 000000000000..78e485f00efe
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/5x5_macropad.h
@@ -0,0 +1,27 @@
+// Copyright 2022 Tomek (@m40-dev)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_ortho_5x5( \
+ K000, K001, K002, K003, K004, \
+ K100, K101, K102, K103, K104, \
+ K200, K201, K202, K203, K204, \
+ K300, K301, K302, K303, K304, \
+ K400, K401, K402, K403, K404 ) { \
+ { K000, K001, K002, K003, K004 }, \
+ { K100, K101, K102, K103, K104 }, \
+ { K200, K201, K202, K203, K204 }, \
+ { K300, K301, K302, K303, K304 }, \
+ { K400, K401, K402, K403, K404 } \
+}
diff --git a/keyboards/handwired/m40/5x5_macropad/config.h b/keyboards/handwired/m40/5x5_macropad/config.h
new file mode 100644
index 000000000000..4f71b79d43b7
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/config.h
@@ -0,0 +1,88 @@
+// Copyright 2022 Tomek (@m40-dev)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0000
+#define DEVICE_VER 0x0001
+#define MANUFACTURER m40
+#define PRODUCT macropad
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 5
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B5, B4, E6, D7, C6 }
+#define MATRIX_COL_PINS { B6, B2, B3, B1, F7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * 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
diff --git a/keyboards/handwired/m40/5x5_macropad/info.json b/keyboards/handwired/m40/5x5_macropad/info.json
new file mode 100644
index 000000000000..7d5ae8c6cbf5
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/info.json
@@ -0,0 +1,41 @@
+{
+ "keyboard_name": "5x5_macropad",
+ "url": "https://www.thingiverse.com/thing:5239739",
+ "maintainer": "m40-dev",
+ "layouts": {
+ "LAYOUT_ortho_5x5": {
+ "layout": [
+ {"label":"K000", "x":0, "y":0},
+ {"label":"K001", "x":1, "y":0},
+ {"label":"K002", "x":2, "y":0},
+ {"label":"K003", "x":3, "y":0},
+ {"label":"K004", "x":4, "y":0},
+
+ {"label":"K100", "x":0, "y":1},
+ {"label":"K101", "x":1, "y":1},
+ {"label":"K102", "x":2, "y":1},
+ {"label":"K103", "x":3, "y":1},
+ {"label":"K104", "x":4, "y":1},
+
+ {"label":"K200", "x":0, "y":2},
+ {"label":"K201", "x":1, "y":2},
+ {"label":"K202", "x":2, "y":2},
+ {"label":"K203", "x":3, "y":2},
+ {"label":"K204", "x":4, "y":2},
+
+ {"label":"K300", "x":0, "y":3},
+ {"label":"K301", "x":1, "y":3},
+ {"label":"K302", "x":2, "y":3},
+ {"label":"K303", "x":3, "y":3},
+ {"label":"K304", "x":4, "y":3},
+
+ {"label":"K400", "x":0, "y":4},
+ {"label":"K401", "x":1, "y":4},
+ {"label":"K402", "x":2, "y":4},
+ {"label":"K403", "x":3, "y":4},
+ {"label":"K404", "x":4, "y":4}
+
+ ]
+ }
+ }
+ }
\ No newline at end of file
diff --git a/keyboards/handwired/m40/5x5_macropad/keymaps/default/keymap.c b/keyboards/handwired/m40/5x5_macropad/keymaps/default/keymap.c
new file mode 100644
index 000000000000..5b329dc571cb
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/keymaps/default/keymap.c
@@ -0,0 +1,26 @@
+// Copyright 2022 Tomek (@m40-dev)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_ortho_5x5(
+ //┌────────┬────────┬────────┬────────┬────────┐
+ KC_ESC, KC_1, KC_2, KC_3, RESET,
+ //├────────┼────────┼────────┼────────┬────────┤
+ KC_1, KC_2, KC_3, KC_4, KC_5,
+ //├────────┼────────┼────────┼────────┼────────┤
+ KC_1, KC_2, KC_3, KC_4, KC_5,
+ //├────────┼────────┼────────┼────────┼────────┤
+ KC_1, KC_2, KC_3, KC_4, KC_5,
+ //├────────┼────────┼────────┼────────┼────────┤
+ KC_1, KC_2, KC_3, KC_4, KC_5 )
+ //└────────┴────────┴────────┴─────────────────┘
+};
diff --git a/keyboards/handwired/m40/5x5_macropad/keymaps/default/readme.md b/keyboards/handwired/m40/5x5_macropad/keymaps/default/readme.md
new file mode 100644
index 000000000000..faaecfd9ea91
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for 5x5_macropad
diff --git a/keyboards/handwired/m40/5x5_macropad/readme.md b/keyboards/handwired/m40/5x5_macropad/readme.md
new file mode 100644
index 000000000000..7ce38d6593f6
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/readme.md
@@ -0,0 +1,26 @@
+# 5x5_macropad
+
+![m40](https://i.imgur.com/bWXH3FVl.jpeg)
+
+This is very simple 5x5 macropad for general use. It does not come with any particular layout, it is assumed that layouts will be built on the qmk configurator site. Row and column pins start on the edge of Arduino, if smaller board is required, you can simply connect only first x row/column pairs to the board and get the size of the board you need.
+
+* Keyboard Maintainer: [Tomek](https://github.com/m40-dev) (discord: m40#4792)
+* Hardware Supported: 3D Printed, handwired, using Arduino Pro-Micro (Atmega32U4) for controller
+* Hardware Availability: https://www.thingiverse.com/thing:5239739
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/m40/5x5_macropad:default
+
+Flashing example for this keyboard:
+
+ make handwired/m40/5x5_macropad: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 2 ways:
+
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available. In default layout (if you flashed it already once) it is the top-right button.
diff --git a/keyboards/handwired/m40/5x5_macropad/rules.mk b/keyboards/handwired/m40/5x5_macropad/rules.mk
new file mode 100644
index 000000000000..d43ced4ed423
--- /dev/null
+++ b/keyboards/handwired/m40/5x5_macropad/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
\ No newline at end of file
From 38209c5c861900e94ad2a0acdc11ea50214f0400 Mon Sep 17 00:00:00 2001
From: dn9uyen
Date: Wed, 30 Mar 2022 12:00:17 -0700
Subject: [PATCH 096/221] Add emulated eeprom support for STM32F303xE (#16737)
Added FEE_PAGE_SIZE and FEE_MCU_FLASH_SIZE defines for the STM32F303xE
---
platforms/chibios/eeprom_stm32_defs.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/platforms/chibios/eeprom_stm32_defs.h b/platforms/chibios/eeprom_stm32_defs.h
index a6ceb413557e..57d044033038 100644
--- a/platforms/chibios/eeprom_stm32_defs.h
+++ b/platforms/chibios/eeprom_stm32_defs.h
@@ -25,7 +25,7 @@
# ifndef FEE_PAGE_COUNT
# define FEE_PAGE_COUNT 2 // How many pages are used
# endif
-# elif defined(STM32F103xE) || defined(STM32F303xC) || defined(STM32F072xB) || defined(STM32F070xB)
+# elif defined(STM32F103xE) || defined(STM32F303xC) || defined(STM32F303xE) || defined(STM32F072xB) || defined(STM32F070xB)
# ifndef FEE_PAGE_SIZE
# define FEE_PAGE_SIZE 0x800 // Page size = 2KByte
# endif
@@ -51,7 +51,7 @@
# define FEE_MCU_FLASH_SIZE 128 // Size in Kb
# elif defined(STM32F303xC) || defined(STM32F401xC)
# define FEE_MCU_FLASH_SIZE 256 // Size in Kb
-# elif defined(STM32F103xE) || defined(STM32F401xE) || defined(STM32F411xE)
+# elif defined(STM32F103xE) || defined(STM32F303xE) || defined(STM32F401xE) || defined(STM32F411xE)
# define FEE_MCU_FLASH_SIZE 512 // Size in Kb
# elif defined(STM32F405xG)
# define FEE_MCU_FLASH_SIZE 1024 // Size in Kb
From 64974a7f8fbda680ea307a9a4c2cb1cfbe92c01e Mon Sep 17 00:00:00 2001
From: Ryan
Date: Thu, 31 Mar 2022 07:54:13 +1100
Subject: [PATCH 097/221] yapf: disable arithmetic predecence indication
(#16749)
---
lib/python/qmk/cli/generate/rgb_breathe_table.py | 4 ++--
lib/python/qmk/keyboard.py | 14 +++++++-------
setup.cfg | 2 +-
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/lib/python/qmk/cli/generate/rgb_breathe_table.py b/lib/python/qmk/cli/generate/rgb_breathe_table.py
index 7382abd68b5f..8cf83238e14e 100644
--- a/lib/python/qmk/cli/generate/rgb_breathe_table.py
+++ b/lib/python/qmk/cli/generate/rgb_breathe_table.py
@@ -34,7 +34,7 @@ def generate_rgb_breathe_table(cli):
"""
breathe_values = [0] * 256
for pos in range(0, 256):
- breathe_values[pos] = (int)((math.exp(math.sin((pos/255) * math.pi)) - cli.args.center / math.e) * (cli.args.max / (math.e - 1 / math.e))) # noqa: yapf insists there be no whitespace around /
+ breathe_values[pos] = (int)((math.exp(math.sin((pos / 255) * math.pi)) - cli.args.center / math.e) * (cli.args.max / (math.e - 1 / math.e)))
values_template = ''
for s in range(0, 3):
@@ -46,7 +46,7 @@ def generate_rgb_breathe_table(cli):
values_template += ' ' if pos % 8 == 0 else ''
values_template += '0x{:02X}'.format(breathe_values[pos])
values_template += ',' if (pos + step) < 256 else ''
- values_template += '\n' if (pos+step) % 8 == 0 else ' ' # noqa: yapf insists there be no whitespace around +
+ values_template += '\n' if (pos + step) % 8 == 0 else ' '
values_template += '#endif'
values_template += '\n\n' if s < 2 else ''
diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py
index 7cd0a1d5a715..e69f63aebeb5 100644
--- a/lib/python/qmk/keyboard.py
+++ b/lib/python/qmk/keyboard.py
@@ -218,7 +218,7 @@ def render_key_rect(textpad, x, y, w, h, label, style):
label_blank = ' ' * label_len
label_border = box_chars['h'] * label_len
- label_middle = label + ' '*label_leftover # noqa: yapf insists there be no whitespace around *
+ label_middle = label + ' ' * label_leftover
top_line = array('u', box_chars['tl'] + label_border + box_chars['tr'])
lab_line = array('u', box_chars['v'] + label_middle + box_chars['v'])
@@ -245,10 +245,10 @@ def render_key_isoenter(textpad, x, y, w, h, label, style):
if len(label) > label_len:
label = label[:label_len]
- label_blank = ' ' * (label_len-1) # noqa: yapf insists there be no whitespace around - and *
+ label_blank = ' ' * (label_len - 1)
label_border_top = box_chars['h'] * label_len
- label_border_bottom = box_chars['h'] * (label_len-1) # noqa
- label_middle = label + ' '*label_leftover # noqa
+ label_border_bottom = box_chars['h'] * (label_len - 1)
+ label_middle = label + ' ' * label_leftover
top_line = array('u', box_chars['tl'] + label_border_top + box_chars['tr'])
lab_line = array('u', box_chars['v'] + label_middle + box_chars['v'])
@@ -277,10 +277,10 @@ def render_key_baenter(textpad, x, y, w, h, label, style):
if len(label) > label_len:
label = label[:label_len]
- label_blank = ' ' * (label_len-3) # noqa: yapf insists there be no whitespace around - and *
- label_border_top = box_chars['h'] * (label_len-3) # noqa
+ label_blank = ' ' * (label_len - 3)
+ label_border_top = box_chars['h'] * (label_len - 3)
label_border_bottom = box_chars['h'] * label_len
- label_middle = label + ' '*label_leftover # noqa
+ label_middle = label + ' ' * label_leftover
top_line = array('u', box_chars['tl'] + label_border_top + box_chars['tr'])
mid_line = array('u', box_chars['v'] + label_blank + box_chars['v'])
diff --git a/setup.cfg b/setup.cfg
index baa6a0396765..c7d795209838 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -51,7 +51,7 @@ allow_split_before_dict_value=True
# e = 1*2 - 3
# f = 1 + 2 + 3 + 4
#
-arithmetic_precedence_indication=True
+arithmetic_precedence_indication=False
# Number of blank lines surrounding top-level function and class
# definitions.
From 11db29bedb24acc6d8c8ab30e4fa7d80b208b023 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Fri, 1 Apr 2022 10:25:43 +0100
Subject: [PATCH 098/221] Lint keyboard/project name (#16766)
---
data/schemas/definitions.jsonschema | 16 ++++++++++++++++
data/schemas/keyboard.jsonschema | 1 +
2 files changed, 17 insertions(+)
diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema
index 46aba52cbd3c..cca30af8273e 100644
--- a/data/schemas/definitions.jsonschema
+++ b/data/schemas/definitions.jsonschema
@@ -71,6 +71,22 @@
"type": "number",
"min": 0.25
},
+ "keyboard": {
+ "oneOf": [
+ {
+ "type": "string",
+ "enum": [
+ "converter/numeric_keypad_IIe",
+ "emptystring/NQG",
+ "maple_computing/christmas_tree/V2017"
+ ]
+ },
+ {
+ "type": "string",
+ "pattern": "^[0-9a-z][0-9a-z_/]*$"
+ }
+ ]
+ },
"mcu_pin_array": {
"type": "array",
"items": {"$ref": "#/mcu_pin"}
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index a8b3d0693384..adb63fd13ed3 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -5,6 +5,7 @@
"type": "object",
"properties": {
"keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
+ "keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"url": {
From 1caccca1f6f2645479ba8027de996b6fc50c3f46 Mon Sep 17 00:00:00 2001
From: Ryan
Date: Sun, 3 Apr 2022 01:53:21 +1100
Subject: [PATCH 099/221] usb-usb converter: fix layout macros (#16769)
---
keyboards/converter/usb_usb/usb_usb.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/keyboards/converter/usb_usb/usb_usb.h b/keyboards/converter/usb_usb/usb_usb.h
index 4a25cf5d2e93..99baa003cb53 100644
--- a/keyboards/converter/usb_usb/usb_usb.h
+++ b/keyboards/converter/usb_usb/usb_usb.h
@@ -168,7 +168,7 @@ along with this program. If not, see .
{ XXX, XXX, XXX, XXX, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
{ k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, k5D, k5E, k5F }, \
{ k60, k61, k62, k63, k64, k65, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,}, \
@@ -210,10 +210,10 @@ along with this program. If not, see .
{ XXX, XXX, XXX, XXX, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
+ { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
{ k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, k5D, k5E, k5F }, \
- { k60, k61, k62, k63, k64, k65, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,}, \
+ { k60, k61, k62, k63, XXX, k65, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,}, \
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,}, \
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, k87, k88, k89, k8A, k8B, XXX, XXX, XXX, XXX }, \
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \
From 4f30b7a2c9d04070f1df8936bf3e75eee14558bc Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Sat, 2 Apr 2022 22:09:16 +0100
Subject: [PATCH 100/221] Automatically approve workflow runs from first time
contributors (#16774)
---
.github/workflows/auto_approve.yml | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 .github/workflows/auto_approve.yml
diff --git a/.github/workflows/auto_approve.yml b/.github/workflows/auto_approve.yml
new file mode 100644
index 000000000000..7c0a982b4412
--- /dev/null
+++ b/.github/workflows/auto_approve.yml
@@ -0,0 +1,16 @@
+name: Automatic Approve
+
+on:
+ schedule:
+ - cron: "*/5 * * * *"
+
+jobs:
+ automatic_approve:
+ runs-on: ubuntu-latest
+
+ steps:
+ uses: mheap/automatic-approve-action@v1
+ with:
+ token: ${{ secrets.QMK_BOT_TOKEN }}
+ workflows: "format.yml,lint.yml,unit_test.yml"
+ dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
From 61bd61347ab1739524f375871407d54436f4c68e Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Sat, 2 Apr 2022 22:28:10 +0100
Subject: [PATCH 101/221] Automatically approve workflow runs from first time
contributors (#16775)
* Automatically approve workflow runs from first time contributors
* Automatically approve workflow runs from first time contributors
---
.github/workflows/auto_approve.yml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/auto_approve.yml b/.github/workflows/auto_approve.yml
index 7c0a982b4412..6b986ffcccf5 100644
--- a/.github/workflows/auto_approve.yml
+++ b/.github/workflows/auto_approve.yml
@@ -9,8 +9,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: mheap/automatic-approve-action@v1
- with:
- token: ${{ secrets.QMK_BOT_TOKEN }}
- workflows: "format.yml,lint.yml,unit_test.yml"
- dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
+ - uses: mheap/automatic-approve-action@v1
+ with:
+ token: ${{ secrets.QMK_BOT_TOKEN }}
+ workflows: "format.yml,lint.yml,unit_test.yml"
+ dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
From 27ae37d626ca534be196bf4a0bdffa8e03a5a159 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Sun, 3 Apr 2022 13:18:28 +0100
Subject: [PATCH 102/221] Align action workflow filenames (#16776)
---
.github/workflows/{auto_tag.yaml => auto_tag.yml} | 0
.github/workflows/{format.yaml => format.yml} | 0
.github/workflows/{format_push.yaml => format_push.yml} | 0
3 files changed, 0 insertions(+), 0 deletions(-)
rename .github/workflows/{auto_tag.yaml => auto_tag.yml} (100%)
rename .github/workflows/{format.yaml => format.yml} (100%)
rename .github/workflows/{format_push.yaml => format_push.yml} (100%)
diff --git a/.github/workflows/auto_tag.yaml b/.github/workflows/auto_tag.yml
similarity index 100%
rename from .github/workflows/auto_tag.yaml
rename to .github/workflows/auto_tag.yml
diff --git a/.github/workflows/format.yaml b/.github/workflows/format.yml
similarity index 100%
rename from .github/workflows/format.yaml
rename to .github/workflows/format.yml
diff --git a/.github/workflows/format_push.yaml b/.github/workflows/format_push.yml
similarity index 100%
rename from .github/workflows/format_push.yaml
rename to .github/workflows/format_push.yml
From 1660b2d2e25f5c43306a043c372255d0f66bb925 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Sun, 3 Apr 2022 18:22:52 +0100
Subject: [PATCH 103/221] Refactor CTPC logic to allow future converters
(#16621)
* Refactor CTPC logic to allow future converters
* Update builddefs/converters.mk
Co-authored-by: Stefan Kerkmann
Co-authored-by: Stefan Kerkmann
---
builddefs/build_keyboard.mk | 8 +-
builddefs/converters.mk | 26 +
platforms/chibios/_pin_defs.h | 564 ++++++++----------
.../promicro_to_proton_c/_pin_defs.h | 41 ++
.../promicro_to_proton_c/converter.mk} | 2 -
5 files changed, 330 insertions(+), 311 deletions(-)
create mode 100644 builddefs/converters.mk
create mode 100644 platforms/chibios/converters/promicro_to_proton_c/_pin_defs.h
rename platforms/chibios/{boards/QMK_PROTON_C/convert_to_proton_c.mk => converters/promicro_to_proton_c/converter.mk} (78%)
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index 44acd964cc7a..4503f018a828 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -172,13 +172,7 @@ generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c
endif
-ifeq ($(strip $(CTPC)), yes)
- CONVERT_TO_PROTON_C=yes
-endif
-
-ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
- include platforms/chibios/boards/QMK_PROTON_C/convert_to_proton_c.mk
-endif
+include $(BUILDDEFS_PATH)/converters.mk
include $(BUILDDEFS_PATH)/mcu_selection.mk
diff --git a/builddefs/converters.mk b/builddefs/converters.mk
new file mode 100644
index 000000000000..1b029e72259d
--- /dev/null
+++ b/builddefs/converters.mk
@@ -0,0 +1,26 @@
+ifeq ($(strip $(CTPC)), yes)
+ CONVERT_TO_PROTON_C=yes
+endif
+ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
+ CONVERT_TO=proton_c
+endif
+
+# TODO: opt in rather than assume everything uses a pro micro
+PIN_COMPATIBLE ?= promicro
+ifneq ($(CONVERT_TO),)
+ # glob to search each platfrorm and/or check for valid converter
+ CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/)
+ ifeq ($(CONVERTER),)
+ $(call CATASTROPHIC_ERROR,Converting from '$(PIN_COMPATIBLE)' to '$(CONVERT_TO)' not possible!)
+ endif
+
+ TARGET := $(TARGET)_$(CONVERT_TO)
+
+ # Configure any defaults
+ OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]'))
+ OPT_DEFS += -DCONVERTER_ENABLED
+ VPATH += $(CONVERTER)
+
+ # Finally run any converter specific logic
+ include $(CONVERTER)/converter.mk
+endif
diff --git a/platforms/chibios/_pin_defs.h b/platforms/chibios/_pin_defs.h
index a84d931cc20c..0d96e2fc3b80 100644
--- a/platforms/chibios/_pin_defs.h
+++ b/platforms/chibios/_pin_defs.h
@@ -21,309 +21,269 @@
# include
#endif
-// Defines mapping for Proton C replacement
-#ifdef CONVERT_TO_PROTON_C
-// Left side (front)
-# define D3 PAL_LINE(GPIOA, 9)
-# define D2 PAL_LINE(GPIOA, 10)
-// GND
-// GND
-# define D1 PAL_LINE(GPIOB, 7)
-# define D0 PAL_LINE(GPIOB, 6)
-# define D4 PAL_LINE(GPIOB, 5)
-# define C6 PAL_LINE(GPIOB, 4)
-# define D7 PAL_LINE(GPIOB, 3)
-# define E6 PAL_LINE(GPIOB, 2)
-# define B4 PAL_LINE(GPIOB, 1)
-# define B5 PAL_LINE(GPIOB, 0)
-
-// Right side (front)
-// RAW
-// GND
-// RESET
-// VCC
-# define F4 PAL_LINE(GPIOA, 2)
-# define F5 PAL_LINE(GPIOA, 1)
-# define F6 PAL_LINE(GPIOA, 0)
-# define F7 PAL_LINE(GPIOB, 8)
-# define B1 PAL_LINE(GPIOB, 13)
-# define B3 PAL_LINE(GPIOB, 14)
-# define B2 PAL_LINE(GPIOB, 15)
-# define B6 PAL_LINE(GPIOB, 9)
-
-// LEDs (only D5/C13 uses an actual LED)
-# ifdef CONVERT_TO_PROTON_C_RXLED
-# define D5 PAL_LINE(GPIOC, 14)
-# define B0 PAL_LINE(GPIOC, 13)
-# else
-# define D5 PAL_LINE(GPIOC, 13)
-# define B0 PAL_LINE(GPIOC, 14)
-# endif
-#else
-# define A0 PAL_LINE(GPIOA, 0)
-# define A1 PAL_LINE(GPIOA, 1)
-# define A2 PAL_LINE(GPIOA, 2)
-# define A3 PAL_LINE(GPIOA, 3)
-# define A4 PAL_LINE(GPIOA, 4)
-# define A5 PAL_LINE(GPIOA, 5)
-# define A6 PAL_LINE(GPIOA, 6)
-# define A7 PAL_LINE(GPIOA, 7)
-# define A8 PAL_LINE(GPIOA, 8)
-# define A9 PAL_LINE(GPIOA, 9)
-# define A10 PAL_LINE(GPIOA, 10)
-# define A11 PAL_LINE(GPIOA, 11)
-# define A12 PAL_LINE(GPIOA, 12)
-# define A13 PAL_LINE(GPIOA, 13)
-# define A14 PAL_LINE(GPIOA, 14)
-# define A15 PAL_LINE(GPIOA, 15)
-# define A16 PAL_LINE(GPIOA, 16)
-# define A17 PAL_LINE(GPIOA, 17)
-# define A18 PAL_LINE(GPIOA, 18)
-# define A19 PAL_LINE(GPIOA, 19)
-# define A20 PAL_LINE(GPIOA, 20)
-# define A21 PAL_LINE(GPIOA, 21)
-# define A22 PAL_LINE(GPIOA, 22)
-# define A23 PAL_LINE(GPIOA, 23)
-# define A24 PAL_LINE(GPIOA, 24)
-# define A25 PAL_LINE(GPIOA, 25)
-# define A26 PAL_LINE(GPIOA, 26)
-# define A27 PAL_LINE(GPIOA, 27)
-# define A28 PAL_LINE(GPIOA, 28)
-# define A29 PAL_LINE(GPIOA, 29)
-# define A30 PAL_LINE(GPIOA, 30)
-# define A31 PAL_LINE(GPIOA, 31)
-# define A32 PAL_LINE(GPIOA, 32)
-# define B0 PAL_LINE(GPIOB, 0)
-# define B1 PAL_LINE(GPIOB, 1)
-# define B2 PAL_LINE(GPIOB, 2)
-# define B3 PAL_LINE(GPIOB, 3)
-# define B4 PAL_LINE(GPIOB, 4)
-# define B5 PAL_LINE(GPIOB, 5)
-# define B6 PAL_LINE(GPIOB, 6)
-# define B7 PAL_LINE(GPIOB, 7)
-# define B8 PAL_LINE(GPIOB, 8)
-# define B9 PAL_LINE(GPIOB, 9)
-# define B10 PAL_LINE(GPIOB, 10)
-# define B11 PAL_LINE(GPIOB, 11)
-# define B12 PAL_LINE(GPIOB, 12)
-# define B13 PAL_LINE(GPIOB, 13)
-# define B14 PAL_LINE(GPIOB, 14)
-# define B15 PAL_LINE(GPIOB, 15)
-# define B16 PAL_LINE(GPIOB, 16)
-# define B17 PAL_LINE(GPIOB, 17)
-# define B18 PAL_LINE(GPIOB, 18)
-# define B19 PAL_LINE(GPIOB, 19)
-# define B20 PAL_LINE(GPIOB, 20)
-# define B21 PAL_LINE(GPIOB, 21)
-# define B22 PAL_LINE(GPIOB, 22)
-# define B23 PAL_LINE(GPIOB, 23)
-# define B24 PAL_LINE(GPIOB, 24)
-# define B25 PAL_LINE(GPIOB, 25)
-# define B26 PAL_LINE(GPIOB, 26)
-# define B27 PAL_LINE(GPIOB, 27)
-# define B28 PAL_LINE(GPIOB, 28)
-# define B29 PAL_LINE(GPIOB, 29)
-# define B30 PAL_LINE(GPIOB, 30)
-# define B31 PAL_LINE(GPIOB, 31)
-# define B32 PAL_LINE(GPIOB, 32)
-# define C0 PAL_LINE(GPIOC, 0)
-# define C1 PAL_LINE(GPIOC, 1)
-# define C2 PAL_LINE(GPIOC, 2)
-# define C3 PAL_LINE(GPIOC, 3)
-# define C4 PAL_LINE(GPIOC, 4)
-# define C5 PAL_LINE(GPIOC, 5)
-# define C6 PAL_LINE(GPIOC, 6)
-# define C7 PAL_LINE(GPIOC, 7)
-# define C8 PAL_LINE(GPIOC, 8)
-# define C9 PAL_LINE(GPIOC, 9)
-# define C10 PAL_LINE(GPIOC, 10)
-# define C11 PAL_LINE(GPIOC, 11)
-# define C12 PAL_LINE(GPIOC, 12)
-# define C13 PAL_LINE(GPIOC, 13)
-# define C14 PAL_LINE(GPIOC, 14)
-# define C15 PAL_LINE(GPIOC, 15)
-# define C16 PAL_LINE(GPIOC, 16)
-# define C17 PAL_LINE(GPIOC, 17)
-# define C18 PAL_LINE(GPIOC, 18)
-# define C19 PAL_LINE(GPIOC, 19)
-# define C20 PAL_LINE(GPIOC, 20)
-# define C21 PAL_LINE(GPIOC, 21)
-# define C22 PAL_LINE(GPIOC, 22)
-# define C23 PAL_LINE(GPIOC, 23)
-# define C24 PAL_LINE(GPIOC, 24)
-# define C25 PAL_LINE(GPIOC, 25)
-# define C26 PAL_LINE(GPIOC, 26)
-# define C27 PAL_LINE(GPIOC, 27)
-# define C28 PAL_LINE(GPIOC, 28)
-# define C29 PAL_LINE(GPIOC, 29)
-# define C30 PAL_LINE(GPIOC, 30)
-# define C31 PAL_LINE(GPIOC, 31)
-# define C32 PAL_LINE(GPIOC, 32)
-# define D0 PAL_LINE(GPIOD, 0)
-# define D1 PAL_LINE(GPIOD, 1)
-# define D2 PAL_LINE(GPIOD, 2)
-# define D3 PAL_LINE(GPIOD, 3)
-# define D4 PAL_LINE(GPIOD, 4)
-# define D5 PAL_LINE(GPIOD, 5)
-# define D6 PAL_LINE(GPIOD, 6)
-# define D7 PAL_LINE(GPIOD, 7)
-# define D8 PAL_LINE(GPIOD, 8)
-# define D9 PAL_LINE(GPIOD, 9)
-# define D10 PAL_LINE(GPIOD, 10)
-# define D11 PAL_LINE(GPIOD, 11)
-# define D12 PAL_LINE(GPIOD, 12)
-# define D13 PAL_LINE(GPIOD, 13)
-# define D14 PAL_LINE(GPIOD, 14)
-# define D15 PAL_LINE(GPIOD, 15)
-# define D16 PAL_LINE(GPIOD, 16)
-# define D17 PAL_LINE(GPIOD, 17)
-# define D18 PAL_LINE(GPIOD, 18)
-# define D19 PAL_LINE(GPIOD, 19)
-# define D20 PAL_LINE(GPIOD, 20)
-# define D21 PAL_LINE(GPIOD, 21)
-# define D22 PAL_LINE(GPIOD, 22)
-# define D23 PAL_LINE(GPIOD, 23)
-# define D24 PAL_LINE(GPIOD, 24)
-# define D25 PAL_LINE(GPIOD, 25)
-# define D26 PAL_LINE(GPIOD, 26)
-# define D27 PAL_LINE(GPIOD, 27)
-# define D28 PAL_LINE(GPIOD, 28)
-# define D29 PAL_LINE(GPIOD, 29)
-# define D30 PAL_LINE(GPIOD, 30)
-# define D31 PAL_LINE(GPIOD, 31)
-# define D32 PAL_LINE(GPIOD, 32)
-# define E0 PAL_LINE(GPIOE, 0)
-# define E1 PAL_LINE(GPIOE, 1)
-# define E2 PAL_LINE(GPIOE, 2)
-# define E3 PAL_LINE(GPIOE, 3)
-# define E4 PAL_LINE(GPIOE, 4)
-# define E5 PAL_LINE(GPIOE, 5)
-# define E6 PAL_LINE(GPIOE, 6)
-# define E7 PAL_LINE(GPIOE, 7)
-# define E8 PAL_LINE(GPIOE, 8)
-# define E9 PAL_LINE(GPIOE, 9)
-# define E10 PAL_LINE(GPIOE, 10)
-# define E11 PAL_LINE(GPIOE, 11)
-# define E12 PAL_LINE(GPIOE, 12)
-# define E13 PAL_LINE(GPIOE, 13)
-# define E14 PAL_LINE(GPIOE, 14)
-# define E15 PAL_LINE(GPIOE, 15)
-# define E16 PAL_LINE(GPIOE, 16)
-# define E17 PAL_LINE(GPIOE, 17)
-# define E18 PAL_LINE(GPIOE, 18)
-# define E19 PAL_LINE(GPIOE, 19)
-# define E20 PAL_LINE(GPIOE, 20)
-# define E21 PAL_LINE(GPIOE, 21)
-# define E22 PAL_LINE(GPIOE, 22)
-# define E23 PAL_LINE(GPIOE, 23)
-# define E24 PAL_LINE(GPIOE, 24)
-# define E25 PAL_LINE(GPIOE, 25)
-# define E26 PAL_LINE(GPIOE, 26)
-# define E27 PAL_LINE(GPIOE, 27)
-# define E28 PAL_LINE(GPIOE, 28)
-# define E29 PAL_LINE(GPIOE, 29)
-# define E30 PAL_LINE(GPIOE, 30)
-# define E31 PAL_LINE(GPIOE, 31)
-# define E32 PAL_LINE(GPIOE, 32)
-# define F0 PAL_LINE(GPIOF, 0)
-# define F1 PAL_LINE(GPIOF, 1)
-# define F2 PAL_LINE(GPIOF, 2)
-# define F3 PAL_LINE(GPIOF, 3)
-# define F4 PAL_LINE(GPIOF, 4)
-# define F5 PAL_LINE(GPIOF, 5)
-# define F6 PAL_LINE(GPIOF, 6)
-# define F7 PAL_LINE(GPIOF, 7)
-# define F8 PAL_LINE(GPIOF, 8)
-# define F9 PAL_LINE(GPIOF, 9)
-# define F10 PAL_LINE(GPIOF, 10)
-# define F11 PAL_LINE(GPIOF, 11)
-# define F12 PAL_LINE(GPIOF, 12)
-# define F13 PAL_LINE(GPIOF, 13)
-# define F14 PAL_LINE(GPIOF, 14)
-# define F15 PAL_LINE(GPIOF, 15)
-# define G0 PAL_LINE(GPIOG, 0)
-# define G1 PAL_LINE(GPIOG, 1)
-# define G2 PAL_LINE(GPIOG, 2)
-# define G3 PAL_LINE(GPIOG, 3)
-# define G4 PAL_LINE(GPIOG, 4)
-# define G5 PAL_LINE(GPIOG, 5)
-# define G6 PAL_LINE(GPIOG, 6)
-# define G7 PAL_LINE(GPIOG, 7)
-# define G8 PAL_LINE(GPIOG, 8)
-# define G9 PAL_LINE(GPIOG, 9)
-# define G10 PAL_LINE(GPIOG, 10)
-# define G11 PAL_LINE(GPIOG, 11)
-# define G12 PAL_LINE(GPIOG, 12)
-# define G13 PAL_LINE(GPIOG, 13)
-# define G14 PAL_LINE(GPIOG, 14)
-# define G15 PAL_LINE(GPIOG, 15)
-# define H0 PAL_LINE(GPIOH, 0)
-# define H1 PAL_LINE(GPIOH, 1)
-# define H2 PAL_LINE(GPIOH, 2)
-# define H3 PAL_LINE(GPIOH, 3)
-# define H4 PAL_LINE(GPIOH, 4)
-# define H5 PAL_LINE(GPIOH, 5)
-# define H6 PAL_LINE(GPIOH, 6)
-# define H7 PAL_LINE(GPIOH, 7)
-# define H8 PAL_LINE(GPIOH, 8)
-# define H9 PAL_LINE(GPIOH, 9)
-# define H10 PAL_LINE(GPIOH, 10)
-# define H11 PAL_LINE(GPIOH, 11)
-# define H12 PAL_LINE(GPIOH, 12)
-# define H13 PAL_LINE(GPIOH, 13)
-# define H14 PAL_LINE(GPIOH, 14)
-# define H15 PAL_LINE(GPIOH, 15)
-# define I0 PAL_LINE(GPIOI, 0)
-# define I1 PAL_LINE(GPIOI, 1)
-# define I2 PAL_LINE(GPIOI, 2)
-# define I3 PAL_LINE(GPIOI, 3)
-# define I4 PAL_LINE(GPIOI, 4)
-# define I5 PAL_LINE(GPIOI, 5)
-# define I6 PAL_LINE(GPIOI, 6)
-# define I7 PAL_LINE(GPIOI, 7)
-# define I8 PAL_LINE(GPIOI, 8)
-# define I9 PAL_LINE(GPIOI, 9)
-# define I10 PAL_LINE(GPIOI, 10)
-# define I11 PAL_LINE(GPIOI, 11)
-# define I12 PAL_LINE(GPIOI, 12)
-# define I13 PAL_LINE(GPIOI, 13)
-# define I14 PAL_LINE(GPIOI, 14)
-# define I15 PAL_LINE(GPIOI, 15)
-# define J0 PAL_LINE(GPIOJ, 0)
-# define J1 PAL_LINE(GPIOJ, 1)
-# define J2 PAL_LINE(GPIOJ, 2)
-# define J3 PAL_LINE(GPIOJ, 3)
-# define J4 PAL_LINE(GPIOJ, 4)
-# define J5 PAL_LINE(GPIOJ, 5)
-# define J6 PAL_LINE(GPIOJ, 6)
-# define J7 PAL_LINE(GPIOJ, 7)
-# define J8 PAL_LINE(GPIOJ, 8)
-# define J9 PAL_LINE(GPIOJ, 9)
-# define J10 PAL_LINE(GPIOJ, 10)
-# define J11 PAL_LINE(GPIOJ, 11)
-# define J12 PAL_LINE(GPIOJ, 12)
-# define J13 PAL_LINE(GPIOJ, 13)
-# define J14 PAL_LINE(GPIOJ, 14)
-# define J15 PAL_LINE(GPIOJ, 15)
+#define A0 PAL_LINE(GPIOA, 0)
+#define A1 PAL_LINE(GPIOA, 1)
+#define A2 PAL_LINE(GPIOA, 2)
+#define A3 PAL_LINE(GPIOA, 3)
+#define A4 PAL_LINE(GPIOA, 4)
+#define A5 PAL_LINE(GPIOA, 5)
+#define A6 PAL_LINE(GPIOA, 6)
+#define A7 PAL_LINE(GPIOA, 7)
+#define A8 PAL_LINE(GPIOA, 8)
+#define A9 PAL_LINE(GPIOA, 9)
+#define A10 PAL_LINE(GPIOA, 10)
+#define A11 PAL_LINE(GPIOA, 11)
+#define A12 PAL_LINE(GPIOA, 12)
+#define A13 PAL_LINE(GPIOA, 13)
+#define A14 PAL_LINE(GPIOA, 14)
+#define A15 PAL_LINE(GPIOA, 15)
+#define A16 PAL_LINE(GPIOA, 16)
+#define A17 PAL_LINE(GPIOA, 17)
+#define A18 PAL_LINE(GPIOA, 18)
+#define A19 PAL_LINE(GPIOA, 19)
+#define A20 PAL_LINE(GPIOA, 20)
+#define A21 PAL_LINE(GPIOA, 21)
+#define A22 PAL_LINE(GPIOA, 22)
+#define A23 PAL_LINE(GPIOA, 23)
+#define A24 PAL_LINE(GPIOA, 24)
+#define A25 PAL_LINE(GPIOA, 25)
+#define A26 PAL_LINE(GPIOA, 26)
+#define A27 PAL_LINE(GPIOA, 27)
+#define A28 PAL_LINE(GPIOA, 28)
+#define A29 PAL_LINE(GPIOA, 29)
+#define A30 PAL_LINE(GPIOA, 30)
+#define A31 PAL_LINE(GPIOA, 31)
+#define A32 PAL_LINE(GPIOA, 32)
+#define B0 PAL_LINE(GPIOB, 0)
+#define B1 PAL_LINE(GPIOB, 1)
+#define B2 PAL_LINE(GPIOB, 2)
+#define B3 PAL_LINE(GPIOB, 3)
+#define B4 PAL_LINE(GPIOB, 4)
+#define B5 PAL_LINE(GPIOB, 5)
+#define B6 PAL_LINE(GPIOB, 6)
+#define B7 PAL_LINE(GPIOB, 7)
+#define B8 PAL_LINE(GPIOB, 8)
+#define B9 PAL_LINE(GPIOB, 9)
+#define B10 PAL_LINE(GPIOB, 10)
+#define B11 PAL_LINE(GPIOB, 11)
+#define B12 PAL_LINE(GPIOB, 12)
+#define B13 PAL_LINE(GPIOB, 13)
+#define B14 PAL_LINE(GPIOB, 14)
+#define B15 PAL_LINE(GPIOB, 15)
+#define B16 PAL_LINE(GPIOB, 16)
+#define B17 PAL_LINE(GPIOB, 17)
+#define B18 PAL_LINE(GPIOB, 18)
+#define B19 PAL_LINE(GPIOB, 19)
+#define B20 PAL_LINE(GPIOB, 20)
+#define B21 PAL_LINE(GPIOB, 21)
+#define B22 PAL_LINE(GPIOB, 22)
+#define B23 PAL_LINE(GPIOB, 23)
+#define B24 PAL_LINE(GPIOB, 24)
+#define B25 PAL_LINE(GPIOB, 25)
+#define B26 PAL_LINE(GPIOB, 26)
+#define B27 PAL_LINE(GPIOB, 27)
+#define B28 PAL_LINE(GPIOB, 28)
+#define B29 PAL_LINE(GPIOB, 29)
+#define B30 PAL_LINE(GPIOB, 30)
+#define B31 PAL_LINE(GPIOB, 31)
+#define B32 PAL_LINE(GPIOB, 32)
+#define C0 PAL_LINE(GPIOC, 0)
+#define C1 PAL_LINE(GPIOC, 1)
+#define C2 PAL_LINE(GPIOC, 2)
+#define C3 PAL_LINE(GPIOC, 3)
+#define C4 PAL_LINE(GPIOC, 4)
+#define C5 PAL_LINE(GPIOC, 5)
+#define C6 PAL_LINE(GPIOC, 6)
+#define C7 PAL_LINE(GPIOC, 7)
+#define C8 PAL_LINE(GPIOC, 8)
+#define C9 PAL_LINE(GPIOC, 9)
+#define C10 PAL_LINE(GPIOC, 10)
+#define C11 PAL_LINE(GPIOC, 11)
+#define C12 PAL_LINE(GPIOC, 12)
+#define C13 PAL_LINE(GPIOC, 13)
+#define C14 PAL_LINE(GPIOC, 14)
+#define C15 PAL_LINE(GPIOC, 15)
+#define C16 PAL_LINE(GPIOC, 16)
+#define C17 PAL_LINE(GPIOC, 17)
+#define C18 PAL_LINE(GPIOC, 18)
+#define C19 PAL_LINE(GPIOC, 19)
+#define C20 PAL_LINE(GPIOC, 20)
+#define C21 PAL_LINE(GPIOC, 21)
+#define C22 PAL_LINE(GPIOC, 22)
+#define C23 PAL_LINE(GPIOC, 23)
+#define C24 PAL_LINE(GPIOC, 24)
+#define C25 PAL_LINE(GPIOC, 25)
+#define C26 PAL_LINE(GPIOC, 26)
+#define C27 PAL_LINE(GPIOC, 27)
+#define C28 PAL_LINE(GPIOC, 28)
+#define C29 PAL_LINE(GPIOC, 29)
+#define C30 PAL_LINE(GPIOC, 30)
+#define C31 PAL_LINE(GPIOC, 31)
+#define C32 PAL_LINE(GPIOC, 32)
+#define D0 PAL_LINE(GPIOD, 0)
+#define D1 PAL_LINE(GPIOD, 1)
+#define D2 PAL_LINE(GPIOD, 2)
+#define D3 PAL_LINE(GPIOD, 3)
+#define D4 PAL_LINE(GPIOD, 4)
+#define D5 PAL_LINE(GPIOD, 5)
+#define D6 PAL_LINE(GPIOD, 6)
+#define D7 PAL_LINE(GPIOD, 7)
+#define D8 PAL_LINE(GPIOD, 8)
+#define D9 PAL_LINE(GPIOD, 9)
+#define D10 PAL_LINE(GPIOD, 10)
+#define D11 PAL_LINE(GPIOD, 11)
+#define D12 PAL_LINE(GPIOD, 12)
+#define D13 PAL_LINE(GPIOD, 13)
+#define D14 PAL_LINE(GPIOD, 14)
+#define D15 PAL_LINE(GPIOD, 15)
+#define D16 PAL_LINE(GPIOD, 16)
+#define D17 PAL_LINE(GPIOD, 17)
+#define D18 PAL_LINE(GPIOD, 18)
+#define D19 PAL_LINE(GPIOD, 19)
+#define D20 PAL_LINE(GPIOD, 20)
+#define D21 PAL_LINE(GPIOD, 21)
+#define D22 PAL_LINE(GPIOD, 22)
+#define D23 PAL_LINE(GPIOD, 23)
+#define D24 PAL_LINE(GPIOD, 24)
+#define D25 PAL_LINE(GPIOD, 25)
+#define D26 PAL_LINE(GPIOD, 26)
+#define D27 PAL_LINE(GPIOD, 27)
+#define D28 PAL_LINE(GPIOD, 28)
+#define D29 PAL_LINE(GPIOD, 29)
+#define D30 PAL_LINE(GPIOD, 30)
+#define D31 PAL_LINE(GPIOD, 31)
+#define D32 PAL_LINE(GPIOD, 32)
+#define E0 PAL_LINE(GPIOE, 0)
+#define E1 PAL_LINE(GPIOE, 1)
+#define E2 PAL_LINE(GPIOE, 2)
+#define E3 PAL_LINE(GPIOE, 3)
+#define E4 PAL_LINE(GPIOE, 4)
+#define E5 PAL_LINE(GPIOE, 5)
+#define E6 PAL_LINE(GPIOE, 6)
+#define E7 PAL_LINE(GPIOE, 7)
+#define E8 PAL_LINE(GPIOE, 8)
+#define E9 PAL_LINE(GPIOE, 9)
+#define E10 PAL_LINE(GPIOE, 10)
+#define E11 PAL_LINE(GPIOE, 11)
+#define E12 PAL_LINE(GPIOE, 12)
+#define E13 PAL_LINE(GPIOE, 13)
+#define E14 PAL_LINE(GPIOE, 14)
+#define E15 PAL_LINE(GPIOE, 15)
+#define E16 PAL_LINE(GPIOE, 16)
+#define E17 PAL_LINE(GPIOE, 17)
+#define E18 PAL_LINE(GPIOE, 18)
+#define E19 PAL_LINE(GPIOE, 19)
+#define E20 PAL_LINE(GPIOE, 20)
+#define E21 PAL_LINE(GPIOE, 21)
+#define E22 PAL_LINE(GPIOE, 22)
+#define E23 PAL_LINE(GPIOE, 23)
+#define E24 PAL_LINE(GPIOE, 24)
+#define E25 PAL_LINE(GPIOE, 25)
+#define E26 PAL_LINE(GPIOE, 26)
+#define E27 PAL_LINE(GPIOE, 27)
+#define E28 PAL_LINE(GPIOE, 28)
+#define E29 PAL_LINE(GPIOE, 29)
+#define E30 PAL_LINE(GPIOE, 30)
+#define E31 PAL_LINE(GPIOE, 31)
+#define E32 PAL_LINE(GPIOE, 32)
+#define F0 PAL_LINE(GPIOF, 0)
+#define F1 PAL_LINE(GPIOF, 1)
+#define F2 PAL_LINE(GPIOF, 2)
+#define F3 PAL_LINE(GPIOF, 3)
+#define F4 PAL_LINE(GPIOF, 4)
+#define F5 PAL_LINE(GPIOF, 5)
+#define F6 PAL_LINE(GPIOF, 6)
+#define F7 PAL_LINE(GPIOF, 7)
+#define F8 PAL_LINE(GPIOF, 8)
+#define F9 PAL_LINE(GPIOF, 9)
+#define F10 PAL_LINE(GPIOF, 10)
+#define F11 PAL_LINE(GPIOF, 11)
+#define F12 PAL_LINE(GPIOF, 12)
+#define F13 PAL_LINE(GPIOF, 13)
+#define F14 PAL_LINE(GPIOF, 14)
+#define F15 PAL_LINE(GPIOF, 15)
+#define G0 PAL_LINE(GPIOG, 0)
+#define G1 PAL_LINE(GPIOG, 1)
+#define G2 PAL_LINE(GPIOG, 2)
+#define G3 PAL_LINE(GPIOG, 3)
+#define G4 PAL_LINE(GPIOG, 4)
+#define G5 PAL_LINE(GPIOG, 5)
+#define G6 PAL_LINE(GPIOG, 6)
+#define G7 PAL_LINE(GPIOG, 7)
+#define G8 PAL_LINE(GPIOG, 8)
+#define G9 PAL_LINE(GPIOG, 9)
+#define G10 PAL_LINE(GPIOG, 10)
+#define G11 PAL_LINE(GPIOG, 11)
+#define G12 PAL_LINE(GPIOG, 12)
+#define G13 PAL_LINE(GPIOG, 13)
+#define G14 PAL_LINE(GPIOG, 14)
+#define G15 PAL_LINE(GPIOG, 15)
+#define H0 PAL_LINE(GPIOH, 0)
+#define H1 PAL_LINE(GPIOH, 1)
+#define H2 PAL_LINE(GPIOH, 2)
+#define H3 PAL_LINE(GPIOH, 3)
+#define H4 PAL_LINE(GPIOH, 4)
+#define H5 PAL_LINE(GPIOH, 5)
+#define H6 PAL_LINE(GPIOH, 6)
+#define H7 PAL_LINE(GPIOH, 7)
+#define H8 PAL_LINE(GPIOH, 8)
+#define H9 PAL_LINE(GPIOH, 9)
+#define H10 PAL_LINE(GPIOH, 10)
+#define H11 PAL_LINE(GPIOH, 11)
+#define H12 PAL_LINE(GPIOH, 12)
+#define H13 PAL_LINE(GPIOH, 13)
+#define H14 PAL_LINE(GPIOH, 14)
+#define H15 PAL_LINE(GPIOH, 15)
+#define I0 PAL_LINE(GPIOI, 0)
+#define I1 PAL_LINE(GPIOI, 1)
+#define I2 PAL_LINE(GPIOI, 2)
+#define I3 PAL_LINE(GPIOI, 3)
+#define I4 PAL_LINE(GPIOI, 4)
+#define I5 PAL_LINE(GPIOI, 5)
+#define I6 PAL_LINE(GPIOI, 6)
+#define I7 PAL_LINE(GPIOI, 7)
+#define I8 PAL_LINE(GPIOI, 8)
+#define I9 PAL_LINE(GPIOI, 9)
+#define I10 PAL_LINE(GPIOI, 10)
+#define I11 PAL_LINE(GPIOI, 11)
+#define I12 PAL_LINE(GPIOI, 12)
+#define I13 PAL_LINE(GPIOI, 13)
+#define I14 PAL_LINE(GPIOI, 14)
+#define I15 PAL_LINE(GPIOI, 15)
+#define J0 PAL_LINE(GPIOJ, 0)
+#define J1 PAL_LINE(GPIOJ, 1)
+#define J2 PAL_LINE(GPIOJ, 2)
+#define J3 PAL_LINE(GPIOJ, 3)
+#define J4 PAL_LINE(GPIOJ, 4)
+#define J5 PAL_LINE(GPIOJ, 5)
+#define J6 PAL_LINE(GPIOJ, 6)
+#define J7 PAL_LINE(GPIOJ, 7)
+#define J8 PAL_LINE(GPIOJ, 8)
+#define J9 PAL_LINE(GPIOJ, 9)
+#define J10 PAL_LINE(GPIOJ, 10)
+#define J11 PAL_LINE(GPIOJ, 11)
+#define J12 PAL_LINE(GPIOJ, 12)
+#define J13 PAL_LINE(GPIOJ, 13)
+#define J14 PAL_LINE(GPIOJ, 14)
+#define J15 PAL_LINE(GPIOJ, 15)
// Keyboards can `#define KEYBOARD_REQUIRES_GPIOK` if they need to access GPIO-K pins. These conflict with a whole
// bunch of layout definitions, so it's intentionally left out unless absolutely required -- in that case, the
// keyboard designer should use a different symbol when defining their layout macros.
-# ifdef KEYBOARD_REQUIRES_GPIOK
-# define K0 PAL_LINE(GPIOK, 0)
-# define K1 PAL_LINE(GPIOK, 1)
-# define K2 PAL_LINE(GPIOK, 2)
-# define K3 PAL_LINE(GPIOK, 3)
-# define K4 PAL_LINE(GPIOK, 4)
-# define K5 PAL_LINE(GPIOK, 5)
-# define K6 PAL_LINE(GPIOK, 6)
-# define K7 PAL_LINE(GPIOK, 7)
-# define K8 PAL_LINE(GPIOK, 8)
-# define K9 PAL_LINE(GPIOK, 9)
-# define K10 PAL_LINE(GPIOK, 10)
-# define K11 PAL_LINE(GPIOK, 11)
-# define K12 PAL_LINE(GPIOK, 12)
-# define K13 PAL_LINE(GPIOK, 13)
-# define K14 PAL_LINE(GPIOK, 14)
-# define K15 PAL_LINE(GPIOK, 15)
-# endif
+#ifdef KEYBOARD_REQUIRES_GPIOK
+# define K0 PAL_LINE(GPIOK, 0)
+# define K1 PAL_LINE(GPIOK, 1)
+# define K2 PAL_LINE(GPIOK, 2)
+# define K3 PAL_LINE(GPIOK, 3)
+# define K4 PAL_LINE(GPIOK, 4)
+# define K5 PAL_LINE(GPIOK, 5)
+# define K6 PAL_LINE(GPIOK, 6)
+# define K7 PAL_LINE(GPIOK, 7)
+# define K8 PAL_LINE(GPIOK, 8)
+# define K9 PAL_LINE(GPIOK, 9)
+# define K10 PAL_LINE(GPIOK, 10)
+# define K11 PAL_LINE(GPIOK, 11)
+# define K12 PAL_LINE(GPIOK, 12)
+# define K13 PAL_LINE(GPIOK, 13)
+# define K14 PAL_LINE(GPIOK, 14)
+# define K15 PAL_LINE(GPIOK, 15)
#endif
diff --git a/platforms/chibios/converters/promicro_to_proton_c/_pin_defs.h b/platforms/chibios/converters/promicro_to_proton_c/_pin_defs.h
new file mode 100644
index 000000000000..ad1a81692e54
--- /dev/null
+++ b/platforms/chibios/converters/promicro_to_proton_c/_pin_defs.h
@@ -0,0 +1,41 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+// Left side (front)
+#define D3 PAL_LINE(GPIOA, 9)
+#define D2 PAL_LINE(GPIOA, 10)
+// GND
+// GND
+#define D1 PAL_LINE(GPIOB, 7)
+#define D0 PAL_LINE(GPIOB, 6)
+#define D4 PAL_LINE(GPIOB, 5)
+#define C6 PAL_LINE(GPIOB, 4)
+#define D7 PAL_LINE(GPIOB, 3)
+#define E6 PAL_LINE(GPIOB, 2)
+#define B4 PAL_LINE(GPIOB, 1)
+#define B5 PAL_LINE(GPIOB, 0)
+
+// Right side (front)
+// RAW
+// GND
+// RESET
+// VCC
+#define F4 PAL_LINE(GPIOA, 2)
+#define F5 PAL_LINE(GPIOA, 1)
+#define F6 PAL_LINE(GPIOA, 0)
+#define F7 PAL_LINE(GPIOB, 8)
+#define B1 PAL_LINE(GPIOB, 13)
+#define B3 PAL_LINE(GPIOB, 14)
+#define B2 PAL_LINE(GPIOB, 15)
+#define B6 PAL_LINE(GPIOB, 9)
+
+// LEDs (only D5/C13 uses an actual LED)
+#ifdef CONVERT_TO_PROTON_C_RXLED
+# define D5 PAL_LINE(GPIOC, 14)
+# define B0 PAL_LINE(GPIOC, 13)
+#else
+# define D5 PAL_LINE(GPIOC, 13)
+# define B0 PAL_LINE(GPIOC, 14)
+#endif
diff --git a/platforms/chibios/boards/QMK_PROTON_C/convert_to_proton_c.mk b/platforms/chibios/converters/promicro_to_proton_c/converter.mk
similarity index 78%
rename from platforms/chibios/boards/QMK_PROTON_C/convert_to_proton_c.mk
rename to platforms/chibios/converters/promicro_to_proton_c/converter.mk
index 061815467816..406adae32c3b 100644
--- a/platforms/chibios/boards/QMK_PROTON_C/convert_to_proton_c.mk
+++ b/platforms/chibios/converters/promicro_to_proton_c/converter.mk
@@ -1,9 +1,7 @@
# Proton C MCU settings for converting AVR projects
-TARGET := $(TARGET)_proton_c
MCU := STM32F303
BOARD := QMK_PROTON_C
BOOTLOADER := stm32-dfu
-OPT_DEFS += -DCONVERT_TO_PROTON_C
# These are defaults based on what has been implemented for ARM boards
AUDIO_ENABLE ?= yes
From c0ac3f73724154c02cc5072f7651294d4e9a2366 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Sun, 3 Apr 2022 18:45:10 +0100
Subject: [PATCH 104/221] Add frameworking for development board presets
(#16637)
* Add frameworking for development board presets
* Update lib/python/qmk/info.py
Co-authored-by: Nick Brassel
Co-authored-by: Nick Brassel
---
data/mappings/defaults.json | 17 +++++++++++++++++
data/schemas/keyboard.jsonschema | 4 ++++
lib/python/qmk/info.py | 13 +++++++++++++
3 files changed, 34 insertions(+)
create mode 100644 data/mappings/defaults.json
diff --git a/data/mappings/defaults.json b/data/mappings/defaults.json
new file mode 100644
index 000000000000..d3643fede8e8
--- /dev/null
+++ b/data/mappings/defaults.json
@@ -0,0 +1,17 @@
+{
+ "development_board": {
+ "promicro": {
+ "processor": "atmega32u4",
+ "bootloader": "caterina"
+ },
+ "elite_c": {
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu"
+ },
+ "proton_c": {
+ "processor": "STM32F303",
+ "bootloader": "stm32-dfu",
+ "board": "QMK_PROTON_C"
+ }
+ }
+}
\ No newline at end of file
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index adb63fd13ed3..f4c24c41cd2c 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -12,6 +12,10 @@
"type": "string",
"format": "uri"
},
+ "development_board": {
+ "type": "string",
+ "enum": ["promicro", "elite_c", "proton_c"]
+ },
"processor": {
"type": "string",
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index 1d81b3e94b3c..c5a7d3384867 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -69,6 +69,7 @@ def info_json(keyboard):
# Merge in the data from info.json, config.h, and rules.mk
info_data = merge_info_jsons(keyboard, info_data)
+ info_data = _process_defaults(info_data)
info_data = _extract_rules_mk(info_data, rules_mk(str(keyboard)))
info_data = _extract_config_h(info_data, config_h(str(keyboard)))
@@ -473,6 +474,18 @@ def _extract_config_h(info_data, config_c):
return info_data
+def _process_defaults(info_data):
+ """Process any additional defaults based on currently discovered information
+ """
+ defaults_map = json_load(Path('data/mappings/defaults.json'))
+ for default_type in defaults_map.keys():
+ thing_map = defaults_map[default_type]
+ if default_type in info_data:
+ for key, value in thing_map.get(info_data[default_type], {}).items():
+ info_data[key] = value
+ return info_data
+
+
def _extract_rules_mk(info_data, rules):
"""Pull some keyboard information from existing rules.mk files
"""
From 0c8109a1acd1cf390c9088256e2b269d6a10d39c Mon Sep 17 00:00:00 2001
From: Gompa
Date: Sun, 3 Apr 2022 20:02:28 +0200
Subject: [PATCH 105/221] fix typo in ps2 set_defaults (#16767)
---
drivers/ps2/ps2_mouse.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/ps2/ps2_mouse.h b/drivers/ps2/ps2_mouse.h
index c97c6c893a03..885eeecbd2d5 100644
--- a/drivers/ps2/ps2_mouse.h
+++ b/drivers/ps2/ps2_mouse.h
@@ -120,7 +120,7 @@ __attribute__((unused)) static enum ps2_mouse_mode_e {
enum ps2_mouse_command_e {
PS2_MOUSE_RESET = 0xFF,
PS2_MOUSE_RESEND = 0xFE,
- PS2_MOSUE_SET_DEFAULTS = 0xF6,
+ PS2_MOUSE_SET_DEFAULTS = 0xF6,
PS2_MOUSE_DISABLE_DATA_REPORTING = 0xF5,
PS2_MOUSE_ENABLE_DATA_REPORTING = 0xF4,
PS2_MOUSE_SET_SAMPLE_RATE = 0xF3,
From ec4f6553338919771038114c9d6e15c0be3778ec Mon Sep 17 00:00:00 2001
From: Nick Brassel
Date: Mon, 4 Apr 2022 04:17:38 +1000
Subject: [PATCH 106/221] Add warning for CTCP/CONVERT_TO_PROTON_C. (#16782)
---
builddefs/converters.mk | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/builddefs/converters.mk b/builddefs/converters.mk
index 1b029e72259d..b3e7bec00773 100644
--- a/builddefs/converters.mk
+++ b/builddefs/converters.mk
@@ -1,8 +1,19 @@
+# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms
+# and should not be replicated for new boards. These will be removed from
+# documentation as well as existing keymaps in due course.
ifeq ($(strip $(CTPC)), yes)
CONVERT_TO_PROTON_C=yes
endif
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
CONVERT_TO=proton_c
+
+cpfirmware: ctpc_warning
+.INTERMEDIATE: ctpc_warning
+ctpc_warning: elf
+ $(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
+ $(info The `CONVERT_TO_PROTON_C` and `CTPC` options are soon to be deprecated.)
+ $(info Boards should be changed to use `CONVERT_TO=proton_c` instead.)
+ $(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
endif
# TODO: opt in rather than assume everything uses a pro micro
From 6822101f9cbdc907d30190753fe336570bab40ba Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Sun, 3 Apr 2022 22:01:16 +0100
Subject: [PATCH 107/221] Run auto approve only on qmk/qmk_firmware (#16786)
---
.github/workflows/auto_approve.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/auto_approve.yml b/.github/workflows/auto_approve.yml
index 6b986ffcccf5..dea3f017ddd9 100644
--- a/.github/workflows/auto_approve.yml
+++ b/.github/workflows/auto_approve.yml
@@ -8,6 +8,8 @@ jobs:
automatic_approve:
runs-on: ubuntu-latest
+ if: github.repository == 'qmk/qmk_firmware'
+
steps:
- uses: mheap/automatic-approve-action@v1
with:
From d59d60ff69cae8e60ed08c5bc31ee3cd7e0a5d1d Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Mon, 4 Apr 2022 11:56:20 -0700
Subject: [PATCH 108/221] Hineybush H65 Layout Additions and Configurator
Update (#16779)
* info.json: apply friendly formatting
* h65.h: use QMK 3-character notation
* h65.h: add matrix diagram
* add LAYOUT_65_ansi_blocker
* add LAYOUT_65_ansi_blocker_split_bs
* add LAYOUT_65_ansi_blocker_tsangan
* add LAYOUT_65_ansi_blocker_tsangan_split_bs
* add LAYOUT_65_iso_blocker
* add LAYOUT_65_iso_blocker_split_bs
* add LAYOUT_65_iso_blocker_tsangan
* add LAYOUT_65_iso_blocker_tsangan_split_bs
* grid align keycodes in keymaps
* rules.mk: align inline comments
---
keyboards/hineybush/h65/h65.h | 165 ++++-
keyboards/hineybush/h65/info.json | 683 +++++++++++++++++-
.../hineybush/h65/keymaps/default/keymap.c | 20 +-
keyboards/hineybush/h65/keymaps/via/keymap.c | 44 +-
keyboards/hineybush/h65/rules.mk | 8 +-
5 files changed, 865 insertions(+), 55 deletions(-)
diff --git a/keyboards/hineybush/h65/h65.h b/keyboards/hineybush/h65/h65.h
index 8e82f1620f3c..986c071a45e0 100644
--- a/keyboards/hineybush/h65/h65.h
+++ b/keyboards/hineybush/h65/h65.h
@@ -18,24 +18,153 @@
#include "quantum.h"
-/* This is a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
+#define ___ KC_NO
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │1E │ │0E │ 2u Backspace
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │2E │ │ │
+ * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter
+ * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │3E │ │2C │ │
+ * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
+ * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │4E │
+ * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │40 │41 │42 │43 │46 │48 │49 │4A │ │4B │4C │4D │ 2.75u/1.25u/2.25u Split Space
+ * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘
+ * ┌────┬────┬────┬────────┬────┬──────────┬────┬────┐
+ * │40 │41 │42 │43 │46 │48 │49 │4A │ 2.25u/1.25u/2.75u Split Space
+ * └────┴────┴────┴────────┴────┴──────────┴────┴────┘
+ * ┌────┬────┬────┬────────────────────────┬────┬────┐
+ * │40 │41 │42 │46 │49 │4A │ Standard
+ * └────┴────┴────┴────────────────────────┴────┴────┘
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┐
+ * │40 │41 │42 │46 │4A │ Tsangan
+ * └─────┴───┴─────┴───────────────────────────┴─────┘
*/
+
#define LAYOUT_all( \
- k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k114, \
- k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k214, \
- k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k314, \
- k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k414, \
- k400, k401, k402, k403, k406, k408, k409, k410, k411, k412, k413 \
-) { \
- { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014 }, \
- { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114 }, \
- { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214 }, \
- { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314 }, \
- { k400, k401, k402, k403, KC_NO,KC_NO,k406,KC_NO, k408, k409, k410, k411, k412, k413, k414 } \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k43, k46, k48, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, k43, ___, ___, k46, ___, k48, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_ansi_blocker( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k3E, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, k2E }, \
+ { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_ansi_blocker_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k3E, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, k2E }, \
+ { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_ansi_blocker_tsangan( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k3E, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, k2E }, \
+ { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_ansi_blocker_tsangan_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k3E, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, k2E }, \
+ { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_iso_blocker( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_iso_blocker_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_iso_blocker_tsangan( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_iso_blocker_tsangan_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4A, k4B, k4C, k4D, k4E } \
}
diff --git a/keyboards/hineybush/h65/info.json b/keyboards/hineybush/h65/info.json
index 770875afaee9..dcca3f486842 100644
--- a/keyboards/hineybush/h65/info.json
+++ b/keyboards/hineybush/h65/info.json
@@ -4,7 +4,688 @@
"maintainer": "hineybush",
"layouts": {
"LAYOUT_all": {
- "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":12.75, "y":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-_", "x":11, "y":0},
+ {"label":"=+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0},
+ {"label":"Backspace", "x":14, "y":0},
+ {"label":"Delete", "x":15, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[{", "x":11.5, "y":1},
+ {"label":"]}", "x":12.5, "y":1},
+ {"label":"\\|", "x":13.5, "y":1, "w":1.5},
+ {"label":"Home", "x":15, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";:", "x":10.75, "y":2},
+ {"label":"'\"", "x":11.75, "y":2},
+ {"label":"#~", "x":12.75, "y":2},
+ {"label":"Enter", "x":13.75, "y":2, "w":1.25},
+ {"label":"End", "x":15, "y":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":1.25},
+ {"label":"\\|", "x":1.25, "y":3},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",<", "x":9.25, "y":3},
+ {"label":".>", "x":10.25, "y":3},
+ {"label":"/?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"\u2191", "x":14, "y":3},
+ {"label":"Fn", "x":15, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":2.75},
+ {"label":"Space", "x":6.5, "y":4, "w":1.25},
+ {"label":"Space", "x":7.75, "y":4, "w":2.25},
+ {"label":"GUI", "x":10, "y":4, "w":1.25},
+ {"label":"Alt", "x":11.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":13, "y":4},
+ {"label":"\u2193", "x":14, "y":4},
+ {"label":"\u2193", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_tsangan_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_tsangan_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
}
}
}
diff --git a/keyboards/hineybush/h65/keymaps/default/keymap.c b/keyboards/hineybush/h65/keymaps/default/keymap.c
index f17f822f699a..fba330a0cbc0 100644
--- a/keyboards/hineybush/h65/keymaps/default/keymap.c
+++ b/keyboards/hineybush/h65/keymaps/default/keymap.c
@@ -24,18 +24,18 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 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_HOME,
- 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_END,
- 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, MO(_FN),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
+ 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_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_HOME,
+ 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_END,
+ 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, MO(_FN),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[_FN] = LAYOUT_all(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
diff --git a/keyboards/hineybush/h65/keymaps/via/keymap.c b/keyboards/hineybush/h65/keymaps/via/keymap.c
index 436957967572..c0abf9864ae9 100644
--- a/keyboards/hineybush/h65/keymaps/via/keymap.c
+++ b/keyboards/hineybush/h65/keymaps/via/keymap.c
@@ -26,36 +26,34 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 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_HOME,
- 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_END,
- 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, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
+ 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_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_HOME,
+ 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_END,
+ 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, MO(_FN1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[_FN1] = LAYOUT_all(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[_FN2] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
-
+
[_FN3] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
-
-
diff --git a/keyboards/hineybush/h65/rules.mk b/keyboards/hineybush/h65/rules.mk
index 702fe717f294..904686fd9ceb 100644
--- a/keyboards/hineybush/h65/rules.mk
+++ b/keyboards/hineybush/h65/rules.mk
@@ -7,12 +7,14 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+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 = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_ansi_blocker_tsangan 65_iso_blocker 65_iso_blocker_split_bs
From 6a156cb5cc3bebbca489688a650abf917d04f6f7 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Mon, 4 Apr 2022 12:20:10 -0700
Subject: [PATCH 109/221] Hineybush H65 Hotswap Layout Additions and
Configurator Update (#16780)
* info.json: apply friendly formatting
* h65_hotswap.h: use QMK 3-character notation
* h65_hotswap.h: add matrix diagram
* rename LAYOUT to LAYOUT_all
* add LAYOUT_65_ansi_blocker
* add LAYOUT_65_ansi_blocker_split_bs
* add LAYOUT_65_iso_blocker
* add LAYOUT_65_iso_blocker_split_bs
* grid align keycodes in keymaps
* rules.mk: align inline comments
---
keyboards/hineybush/h65_hotswap/h65_hotswap.h | 103 ++++-
keyboards/hineybush/h65_hotswap/info.json | 388 +++++++++++++++++-
.../h65_hotswap/keymaps/default/keymap.c | 24 +-
.../h65_hotswap/keymaps/via/keymap.c | 50 ++-
keyboards/hineybush/h65_hotswap/rules.mk | 8 +-
5 files changed, 512 insertions(+), 61 deletions(-)
diff --git a/keyboards/hineybush/h65_hotswap/h65_hotswap.h b/keyboards/hineybush/h65_hotswap/h65_hotswap.h
index a4b41be481d2..d2149e52150d 100644
--- a/keyboards/hineybush/h65_hotswap/h65_hotswap.h
+++ b/keyboards/hineybush/h65_hotswap/h65_hotswap.h
@@ -18,24 +18,91 @@
#include "quantum.h"
-/* This is a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
+#define ___ KC_NO
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │1E │ │0E │ 2u Backspace
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │2E │ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter
+ * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │3E │ │2C │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │4E │
+ * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │40 │41 │42 │44 │46 │47 │49 │4A │ │4B │4C │4D │
+ * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘
+ * ┌────┬────┬────┬────────────────────────┬────┬────┐
+ * │40 │41 │42 │46 │49 │4A │ Standard
+ * └────┴────┴────┴────────────────────────┴────┴────┘
*/
-#define LAYOUT( \
- k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k114, \
- k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k214, \
- k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k314, \
- k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k414, \
- k400, k401, k402, k404, k406, k407, k409, k410, k411, k412, k413 \
+
+#define LAYOUT_all( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k44, k46, k47, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, k44, ___, k46, k47, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_ansi_blocker( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k3E, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, k2E }, \
+ { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_ansi_blocker_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k3E, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, ___, k2D, k2E }, \
+ { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_iso_blocker( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, ___, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
+}
+
+#define LAYOUT_65_iso_blocker_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k1E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k2E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k3E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k4E, \
+ k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D \
) { \
- { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014 }, \
- { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114 }, \
- { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214 }, \
- { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314 }, \
- { k400, k401, k402, KC_NO,k404 ,KC_NO,k406, k407, KC_NO, k409, k410, k411, k412, k413, k414 } \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, ___, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4A, k4B, k4C, k4D, k4E } \
}
diff --git a/keyboards/hineybush/h65_hotswap/info.json b/keyboards/hineybush/h65_hotswap/info.json
index 105358b98d05..46b5192d687c 100644
--- a/keyboards/hineybush/h65_hotswap/info.json
+++ b/keyboards/hineybush/h65_hotswap/info.json
@@ -2,9 +2,393 @@
"keyboard_name": "h65 hotswap",
"url": "",
"maintainer": "hineybush",
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_all"
+ },
"layouts": {
- "LAYOUT": {
- "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":12.75, "y":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-_", "x":11, "y":0},
+ {"label":"=+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0},
+ {"label":"Backspace", "x":14, "y":0},
+ {"label":"Delete", "x":15, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[{", "x":11.5, "y":1},
+ {"label":"]}", "x":12.5, "y":1},
+ {"label":"\\|", "x":13.5, "y":1, "w":1.5},
+ {"label":"Home", "x":15, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";:", "x":10.75, "y":2},
+ {"label":"'\"", "x":11.75, "y":2},
+ {"label":"#~", "x":12.75, "y":2},
+ {"label":"Enter", "x":13.75, "y":2, "w":1.25},
+ {"label":"End", "x":15, "y":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":1.25},
+ {"label":"\\|", "x":1.25, "y":3},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",<", "x":9.25, "y":3},
+ {"label":".>", "x":10.25, "y":3},
+ {"label":"/?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"\u2191", "x":14, "y":3},
+ {"label":"Fn", "x":15, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":2.75},
+ {"label":"Space", "x":6.5, "y":4, "w":1.25},
+ {"label":"Space", "x":7.75, "y":4, "w":2.25},
+ {"label":"GUI", "x":10, "y":4, "w":1.25},
+ {"label":"Alt", "x":11.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":13, "y":4},
+ {"label":"\u2193", "x":14, "y":4},
+ {"label":"\u2192", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-_", "x":11, "y":0},
+ {"label":"=+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+ {"label":"Delete", "x":15, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[{", "x":11.5, "y":1},
+ {"label":"]}", "x":12.5, "y":1},
+ {"label":"\\|", "x":13.5, "y":1, "w":1.5},
+ {"label":"Home", "x":15, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";:", "x":10.75, "y":2},
+ {"label":"'\"", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+ {"label":"End", "x":15, "y":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",<", "x":9.25, "y":3},
+ {"label":".>", "x":10.25, "y":3},
+ {"label":"/?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"\u2191", "x":14, "y":3},
+ {"label":"Fn", "x":15, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":6.25},
+ {"label":"GUI", "x":10, "y":4, "w":1.25},
+ {"label":"Alt", "x":11.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":13, "y":4},
+ {"label":"\u2193", "x":14, "y":4},
+ {"label":"\u2192", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_split_bs": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-_", "x":11, "y":0},
+ {"label":"=+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0},
+ {"label":"Backspace", "x":14, "y":0},
+ {"label":"Delete", "x":15, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[{", "x":11.5, "y":1},
+ {"label":"]}", "x":12.5, "y":1},
+ {"label":"\\|", "x":13.5, "y":1, "w":1.5},
+ {"label":"Home", "x":15, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";:", "x":10.75, "y":2},
+ {"label":"'\"", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+ {"label":"End", "x":15, "y":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",<", "x":9.25, "y":3},
+ {"label":".>", "x":10.25, "y":3},
+ {"label":"/?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"\u2191", "x":14, "y":3},
+ {"label":"Fn", "x":15, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":6.25},
+ {"label":"GUI", "x":10, "y":4, "w":1.25},
+ {"label":"Alt", "x":11.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":13, "y":4},
+ {"label":"\u2193", "x":14, "y":4},
+ {"label":"\u2192", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-_", "x":11, "y":0},
+ {"label":"=+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+ {"label":"Delete", "x":15, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[{", "x":11.5, "y":1},
+ {"label":"]}", "x":12.5, "y":1},
+ {"label":"Home", "x":15, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";:", "x":10.75, "y":2},
+ {"label":"'\"", "x":11.75, "y":2},
+ {"label":"#~", "x":12.75, "y":2},
+ {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
+ {"label":"End", "x":15, "y":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":1.25},
+ {"label":"\\|", "x":1.25, "y":3},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",<", "x":9.25, "y":3},
+ {"label":".>", "x":10.25, "y":3},
+ {"label":"/?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"\u2191", "x":14, "y":3},
+ {"label":"Fn", "x":15, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":6.25},
+ {"label":"GUI", "x":10, "y":4, "w":1.25},
+ {"label":"Alt", "x":11.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":13, "y":4},
+ {"label":"\u2193", "x":14, "y":4},
+ {"label":"\u2192", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_split_bs": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-_", "x":11, "y":0},
+ {"label":"=+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0},
+ {"label":"Backspace", "x":14, "y":0},
+ {"label":"Delete", "x":15, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[{", "x":11.5, "y":1},
+ {"label":"]}", "x":12.5, "y":1},
+ {"label":"Home", "x":15, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";:", "x":10.75, "y":2},
+ {"label":"'\"", "x":11.75, "y":2},
+ {"label":"#~", "x":12.75, "y":2},
+ {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
+ {"label":"End", "x":15, "y":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":1.25},
+ {"label":"\\|", "x":1.25, "y":3},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",<", "x":9.25, "y":3},
+ {"label":".>", "x":10.25, "y":3},
+ {"label":"/?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"\u2191", "x":14, "y":3},
+ {"label":"Fn", "x":15, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":6.25},
+ {"label":"GUI", "x":10, "y":4, "w":1.25},
+ {"label":"Alt", "x":11.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":13, "y":4},
+ {"label":"\u2193", "x":14, "y":4},
+ {"label":"\u2192", "x":15, "y":4}
+ ]
}
}
}
diff --git a/keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c b/keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c
index f8af1d5d1500..fba330a0cbc0 100644
--- a/keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c
+++ b/keyboards/hineybush/h65_hotswap/keymaps/default/keymap.c
@@ -23,19 +23,19 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
- [_BASE] = LAYOUT(
- 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_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_HOME,
- 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_END,
- 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, MO(_FN),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
+ [_BASE] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 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_HOME,
+ 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_END,
+ 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, MO(_FN),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_FN] = LAYOUT(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ [_FN] = LAYOUT_all(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
diff --git a/keyboards/hineybush/h65_hotswap/keymaps/via/keymap.c b/keyboards/hineybush/h65_hotswap/keymaps/via/keymap.c
index bdd64589025f..c0abf9864ae9 100644
--- a/keyboards/hineybush/h65_hotswap/keymaps/via/keymap.c
+++ b/keyboards/hineybush/h65_hotswap/keymaps/via/keymap.c
@@ -25,37 +25,35 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
- [_BASE] = LAYOUT(
- 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_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_HOME,
- 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_END,
- 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, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
+ [_BASE] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 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_HOME,
+ 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_END,
+ 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, MO(_FN1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_FN1] = LAYOUT(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ [_FN1] = LAYOUT_all(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
- [_FN2] = 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
+ [_FN2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
- [_FN3] = 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
+ [_FN3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
-
-
diff --git a/keyboards/hineybush/h65_hotswap/rules.mk b/keyboards/hineybush/h65_hotswap/rules.mk
index 702fe717f294..f4afd28025b4 100644
--- a/keyboards/hineybush/h65_hotswap/rules.mk
+++ b/keyboards/hineybush/h65_hotswap/rules.mk
@@ -7,12 +7,14 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+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 = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso_blocker 65_iso_blocker_split_bs
From 8b438a9165ace0492d6e249f8064f07531ac6d15 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Mon, 4 Apr 2022 12:27:01 -0700
Subject: [PATCH 110/221] Wavtype Foundation Layout Macro Refactor and
Configurator Update (#16781)
* info.json: apply friendly formatting
* info.json: update layout data
- update labels to make them QMK CLI friendly
- update key sizes and dimensions (removes key overlaps and mis-locations)
* foundation.h: edit white space
- convert tabs to spaces
- edit alignment of arrays
* foundation.h: add matrix diagram
* rename LAYOUT to LAYOUT_ansi_split_bs
* rename LAYOUT_tkl_ansi_7u to LAYOUT_ansi_tsangan_split_bs
* rename LAYOUT_tkl_iso to LAYOUT_iso_split_bs_rshift
* rename LAYOUT_tkl_iso_7u to LAYOUT_iso_tsangan_split_bs_rshift
* refactor keymaps
- use definitions from `layer_names` enum
- use grid alignment
- use QMK-native keycode aliases
* add reference keymaps
Add `default_ansi_tsangan_split_bs`, `default_iso_split_bs_rshift`, and `default_iso_tsangan_split_bs_rshift` keymaps.
* refactor ISO layouts
Edits the ISO layout macros so that the keycode for Enter is to the end of the home row.
* info.json: fix LAYOUT_iso_tsangan_split_bs_rshift reference
Thanks to zvecr.
---
keyboards/wavtype/foundation/foundation.h | 93 +++--
keyboards/wavtype/foundation/info.json | 358 +++++++++++++++++-
.../foundation/keymaps/default/keymap.c | 24 +-
.../default_ansi_tsangan_split_bs/keymap.c | 28 ++
.../default_iso_split_bs_rshift/keymap.c | 28 ++
.../keymap.c | 28 ++
.../wavtype/foundation/keymaps/via/keymap.c | 48 +--
7 files changed, 518 insertions(+), 89 deletions(-)
create mode 100644 keyboards/wavtype/foundation/keymaps/default_ansi_tsangan_split_bs/keymap.c
create mode 100644 keyboards/wavtype/foundation/keymaps/default_iso_split_bs_rshift/keymap.c
create mode 100644 keyboards/wavtype/foundation/keymaps/default_iso_tsangan_split_bs_rshift/keymap.c
diff --git a/keyboards/wavtype/foundation/foundation.h b/keyboards/wavtype/foundation/foundation.h
index a01800f1435e..aad9f50d5bae 100644
--- a/keyboards/wavtype/foundation/foundation.h
+++ b/keyboards/wavtype/foundation/foundation.h
@@ -7,70 +7,79 @@
#include "quantum.h"
-/* This is a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
+/*
+ * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐
+ * │00 │ │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │2e │ │0f │0g │0h │ │0e │ 2u Backspace
+ * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤
+ * │10 │ │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │ │1f │1g │1h │ │ │
+ * 2.25u ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐1e │ ISO Enter
+ * LShift │20 │ │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ │2d │ │
+ * ┌────────┐ ├───┤ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤
+ * │31 │ │30 │ │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │ │3g │ │3d │ 2.75u RShift
+ * └────────┘ ├───┤ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘
+ * │40 │ │41 │42 │43 │47 │4b │4c │4d │4e │ │4f │4g │4h │
+ * └───┘ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+ * │41 │42 │43 │47 │4c │4d │4e │ Tsangan/WKL
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
*/
-#define LAYOUT( \
+
+#define LAYOUT_ansi_split_bs( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k2e, k0f, k0g, k0h, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3g, \
- k40, k41, k42, k43, k47, k4b, k4c, k4d, k4e, k4f, k4g, k4h \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3g, \
+ k40, k41, k42, k43, k47, k4b, k4c, k4d, k4e, k4f, k4g, k4h \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
- { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h}, \
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_}, \
- { k30, k31, _x_, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, _x_, _x_, k3g, _x_}, \
- { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, k4b, k4c, k4d, k4e, k4f, k4g, k4h} \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_ }, \
+ { k30, k31, _x_, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, _x_, _x_, k3g, _x_ }, \
+ { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, k4b, k4c, k4d, k4e, k4f, k4g, k4h } \
}
-#define LAYOUT_tkl_ansi_7u( \
+#define LAYOUT_ansi_tsangan_split_bs( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k2e, k0f, k0g, k0h, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3g, \
- k40, k41, k42, k43, k47, k4c, k4d, k4e, k4f, k4g, k4h \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3g, \
+ k40, k41, k42, k43, k47, k4c, k4d, k4e, k4f, k4g, k4h \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
- { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h}, \
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_}, \
- { k30, k31, _x_, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, _x_, _x_, k3g, _x_}, \
- { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, _x_, k4c, k4d, k4e, k4f, k4g, k4h} \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_ }, \
+ { k30, k31, _x_, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, _x_, _x_, k3g, _x_ }, \
+ { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, _x_, k4c, k4d, k4e, k4f, k4g, k4h } \
}
-#define LAYOUT_tkl_iso( \
+#define LAYOUT_iso_split_bs_rshift( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k2e, k0f, k0g, k0h, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3g, \
- k40, k41, k42, k43, k47, k4b, k4c, k4d, k4e, k4f, k4g, k4h \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k1e, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3g, \
+ k40, k41, k42, k43, k47, k4b, k4c, k4d, k4e, k4f, k4g, k4h \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
- { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h}, \
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_}, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, _x_, k3g, _x_}, \
- { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, k4b, k4c, k4d, k4e, k4f, k4g, k4h} \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_ }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, _x_, k3g, _x_ }, \
+ { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, k4b, k4c, k4d, k4e, k4f, k4g, k4h } \
}
-#define LAYOUT_tkl_iso_7u( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k2e, k0f, k0g, k0h, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3g, \
- k40, k41, k42, k43, k47, k4c, k4d, k4e, k4f, k4g, k4h \
+#define LAYOUT_iso_tsangan_split_bs_rshift( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k2e, k0f, k0g, k0h, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k1e, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3g, \
+ k40, k41, k42, k43, k47, k4c, k4d, k4e, k4f, k4g, k4h \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, k0h }, \
- { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h}, \
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_}, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, _x_, k3g, _x_}, \
- { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, _x_, k4c, k4d, k4e, k4f, k4g, k4h} \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, k1h }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, _x_, _x_, _x_ }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, _x_, k3g, _x_ }, \
+ { k40, k41, k42, k43, _x_, _x_, _x_, k47, _x_, _x_, _x_, _x_, k4c, k4d, k4e, k4f, k4g, k4h } \
}
diff --git a/keyboards/wavtype/foundation/info.json b/keyboards/wavtype/foundation/info.json
index 317c5f5d14e6..23ae9a89c0d8 100644
--- a/keyboards/wavtype/foundation/info.json
+++ b/keyboards/wavtype/foundation/info.json
@@ -2,18 +2,354 @@
"keyboard_name": "foundation",
"url": "",
"maintainer": "wavtype",
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_ansi_split_bs",
+ "LAYOUT_tkl_ansi_7u": "LAYOUT_ansi_tsangan_split_bs",
+ "LAYOUT_tkl_iso": "LAYOUT_iso_split_bs_rshift",
+ "LAYOUT_tkl_iso_7u": "LAYOUT_iso_tsangan_split_bs_rshift"
+ },
"layouts": {
- "LAYOUT": {
- "layout": [{"label":"F1", "x":0, "y":0}, {"label":"esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"-", "x":12.5, "y":0}, {"label":"=", "x":13.5, "y":0}, {"label":"BckSpc", "x":14.5, "y":0, "w":2}, {"label":"split", "x":15.5, "y":0}, {"label":"ins", "x":17, "y":0}, {"label":"home", "x":18, "y":0}, {"label":"pg up", "x":19, "y":0}, {"label":"F2", "x":0, "y":1}, {"label":"tab", "x":1.5, "y":1, "w":1.5}, {"label":"q", "x":3, "y":1}, {"label":"w", "x":4, "y":1}, {"label":"e", "x":5, "y":1}, {"label":"r", "x":6, "y":1}, {"label":"t", "x":7, "y":1}, {"label":"y", "x":8, "y":1}, {"label":"u", "x":9, "y":1}, {"label":"i", "x":10, "y":1}, {"label":"o", "x":11, "y":1}, {"label":"p", "x":12, "y":1}, {"label":"[", "x":13, "y":1}, {"label":"]", "x":14, "y":1}, {"label":"\\", "x":15, "y":1, "w":1.5}, {"label":"del", "x":17, "y":1}, {"label":"end", "x":18, "y":1}, {"label":"pg dn", "x":19, "y":1}, {"label":"F3", "x":0, "y":2}, {"label":"caps", "x":1.5, "y":2, "w":1.25}, {"label":"a", "x":3.25, "y":2}, {"label":"s", "x":4.25, "y":2}, {"label":"d", "x":5.25, "y":2}, {"label":"f", "x":6.25, "y":2}, {"label":"g", "x":7.25, "y":2}, {"label":"h", "x":8.25, "y":2}, {"label":"j", "x":9.25, "y":2}, {"label":"k", "x":10.25, "y":2}, {"label":"l", "x":11.25, "y":2}, {"label":";", "x":12.25, "y":2}, {"label":"'", "x":13.25, "y":2}, {"label":"enter", "x":14.25, "y":2, "w":2.25}, {"label":"F4", "x":0, "y":3}, {"label":"lshft", "x":1.5, "y":3, "w":2.25}, {"label":"z", "x":3.75, "y":3}, {"label":"x", "x":4.75, "y":3}, {"label":"c", "x":5.75, "y":3}, {"label":"v", "x":6.75, "y":3}, {"label":"b", "x":7.75, "y":3}, {"label":"n", "x":8.75, "y":3}, {"label":"m", "x":9.75, "y":3}, {"label":",", "x":10.75, "y":3}, {"label":".", "x":11.75, "y":3}, {"label":"/", "x":12.75, "y":3}, {"label":"rshft", "x":13.75, "y":3, "w":2.75}, {"label":"up", "x":18, "y":3}, {"label":"F5", "x":0, "y":4}, {"label":"lctrl", "x":1.5, "y":4, "w":1.25}, {"label":"lwin", "x":2.75, "y":4, "w":1.25}, {"label":"lalt", "x":4, "y":4, "w":1.25}, {"label":"spce", "x":5.25, "y":4, "w":6.25}, {"label":"ralt", "x":11.5, "y":4, "w":1.25}, {"label":"fn", "x":12.75, "y":4, "w":1.25}, {"label":"rwin", "x":14, "y":4}, {"label":"rctrl", "x":15, "y":4, "w":1.5}, {"label":"left", "x":17, "y":4}, {"label":"down", "x":18, "y":4}, {"label":"right", "x":19, "y":4}]
+ "LAYOUT_ansi_split_bs": {
+ "layout": [
+ {"label":"F1", "x":0, "y":0},
+ {"label":"Esc", "x":1.5, "y":0},
+ {"label":"1!", "x":2.5, "y":0},
+ {"label":"2@", "x":3.5, "y":0},
+ {"label":"3#", "x":4.5, "y":0},
+ {"label":"4$", "x":5.5, "y":0},
+ {"label":"5%", "x":6.5, "y":0},
+ {"label":"6^", "x":7.5, "y":0},
+ {"label":"7&", "x":8.5, "y":0},
+ {"label":"8*", "x":9.5, "y":0},
+ {"label":"9(", "x":10.5, "y":0},
+ {"label":"0)", "x":11.5, "y":0},
+ {"label":"-_", "x":12.5, "y":0},
+ {"label":"=+", "x":13.5, "y":0},
+ {"label":"Backspace", "x":14.5, "y":0},
+ {"label":"Split Backspace", "x":15.5, "y":0},
+ {"label":"Insert", "x":17, "y":0},
+ {"label":"Home", "x":18, "y":0},
+ {"label":"Page Up", "x":19, "y":0},
+
+ {"label":"F2", "x":0, "y":1},
+ {"label":"Tab", "x":1.5, "y":1, "w":1.5},
+ {"label":"Q", "x":3, "y":1},
+ {"label":"W", "x":4, "y":1},
+ {"label":"E", "x":5, "y":1},
+ {"label":"R", "x":6, "y":1},
+ {"label":"T", "x":7, "y":1},
+ {"label":"Y", "x":8, "y":1},
+ {"label":"U", "x":9, "y":1},
+ {"label":"I", "x":10, "y":1},
+ {"label":"O", "x":11, "y":1},
+ {"label":"P", "x":12, "y":1},
+ {"label":"[{", "x":13, "y":1},
+ {"label":"]}", "x":14, "y":1},
+ {"label":"\\|", "x":15, "y":1, "w":1.5},
+ {"label":"Delete", "x":17, "y":1},
+ {"label":"End", "x":18, "y":1},
+ {"label":"Page Down", "x":19, "y":1},
+
+ {"label":"F3", "x":0, "y":2},
+ {"label":"Caps Lock", "x":1.5, "y":2, "w":1.25},
+ {"label":"A", "x":3.25, "y":2},
+ {"label":"S", "x":4.25, "y":2},
+ {"label":"D", "x":5.25, "y":2},
+ {"label":"F", "x":6.25, "y":2},
+ {"label":"G", "x":7.25, "y":2},
+ {"label":"H", "x":8.25, "y":2},
+ {"label":"J", "x":9.25, "y":2},
+ {"label":"K", "x":10.25, "y":2},
+ {"label":"L", "x":11.25, "y":2},
+ {"label":";:", "x":12.25, "y":2},
+ {"label":"'\"", "x":13.25, "y":2},
+ {"label":"Enter", "x":14.25, "y":2, "w":2.25},
+
+ {"label":"F4", "x":0, "y":3},
+ {"label":"Shift", "x":1.5, "y":3, "w":2.25},
+ {"label":"Z", "x":3.75, "y":3},
+ {"label":"X", "x":4.75, "y":3},
+ {"label":"C", "x":5.75, "y":3},
+ {"label":"V", "x":6.75, "y":3},
+ {"label":"B", "x":7.75, "y":3},
+ {"label":"N", "x":8.75, "y":3},
+ {"label":"M", "x":9.75, "y":3},
+ {"label":",<", "x":10.75, "y":3},
+ {"label":".>", "x":11.75, "y":3},
+ {"label":"/?", "x":12.75, "y":3},
+ {"label":"Shift", "x":13.75, "y":3, "w":2.75},
+ {"label":"\u2191", "x":18, "y":3},
+
+ {"label":"F5", "x":0, "y":4},
+ {"label":"Ctrl", "x":1.5, "y":4, "w":1.25},
+ {"label":"Win", "x":2.75, "y":4, "w":1.25},
+ {"label":"Alt", "x":4, "y":4, "w":1.25},
+ {"label":"Space", "x":5.25, "y":4, "w":6.25},
+ {"label":"Alt", "x":11.5, "y":4, "w":1.25},
+ {"label":"Win", "x":12.75, "y":4, "w":1.25},
+ {"label":"Fn", "x":14, "y":4, "w":1.25},
+ {"label":"Ctrl", "x":15.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":17, "y":4},
+ {"label":"\u2193", "x":18, "y":4},
+ {"label":"\u2192", "x":19, "y":4}
+ ]
},
- "LAYOUT_tkl_ansi_7u": {
- "layout": [{"label":"F1", "x":0, "y":0}, {"label":"esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"-", "x":12.5, "y":0}, {"label":"=", "x":13.5, "y":0}, {"label":"BckSpc", "x":14.5, "y":0, "w":2}, {"label":"split", "x":15.5, "y":0}, {"label":"ins", "x":17, "y":0}, {"label":"home", "x":18, "y":0}, {"label":"pg up", "x":19, "y":0}, {"label":"F2", "x":0, "y":1}, {"label":"tab", "x":1.5, "y":1, "w":1.5}, {"label":"q", "x":3, "y":1}, {"label":"w", "x":4, "y":1}, {"label":"e", "x":5, "y":1}, {"label":"r", "x":6, "y":1}, {"label":"t", "x":7, "y":1}, {"label":"y", "x":8, "y":1}, {"label":"u", "x":9, "y":1}, {"label":"i", "x":10, "y":1}, {"label":"o", "x":11, "y":1}, {"label":"p", "x":12, "y":1}, {"label":"[", "x":13, "y":1}, {"label":"]", "x":14, "y":1}, {"label":"\\", "x":15, "y":1, "w":1.5}, {"label":"del", "x":17, "y":1}, {"label":"end", "x":18, "y":1}, {"label":"pg dn", "x":19, "y":1}, {"label":"F3", "x":0, "y":2}, {"label":"caps", "x":1.5, "y":2, "w":1.25}, {"label":"a", "x":3.25, "y":2}, {"label":"s", "x":4.25, "y":2}, {"label":"d", "x":5.25, "y":2}, {"label":"f", "x":6.25, "y":2}, {"label":"g", "x":7.25, "y":2}, {"label":"h", "x":8.25, "y":2}, {"label":"j", "x":9.25, "y":2}, {"label":"k", "x":10.25, "y":2}, {"label":"l", "x":11.25, "y":2}, {"label":";", "x":12.25, "y":2}, {"label":"'", "x":13.25, "y":2}, {"label":"enter", "x":14.25, "y":2, "w":2.25}, {"label":"F4", "x":0, "y":3}, {"label":"lshft", "x":1.5, "y":3, "w":2.25}, {"label":"z", "x":3.75, "y":3}, {"label":"x", "x":4.75, "y":3}, {"label":"c", "x":5.75, "y":3}, {"label":"v", "x":6.75, "y":3}, {"label":"b", "x":7.75, "y":3}, {"label":"n", "x":8.75, "y":3}, {"label":"m", "x":9.75, "y":3}, {"label":",", "x":10.75, "y":3}, {"label":".", "x":11.75, "y":3}, {"label":"/", "x":12.75, "y":3}, {"label":"rshft", "x":13.75, "y":3, "w":2.75}, {"label":"up", "x":18, "y":3}, {"label":"F5", "x":0, "y":4}, {"label":"lctrl", "x":1.5, "y":4, "w":1.5}, {"label":"lwin", "x":3, "y":4}, {"label":"lalt", "x":4, "y":4, "w":1.5}, {"label":"spce", "x":5.5, "y":4, "w":7}, {"label":"ralt", "x":12.5, "y":4, "w":1.5}, {"label":"fn", "x":14, "y":4, "w":1.25}, {"label":"rctrl", "x":15.25, "y":4, "w":1.25}, {"label":"left", "x":17, "y":4}, {"label":"down", "x":18, "y":4}, {"label":"right", "x":19, "y":4}]
- },
- "LAYOUT_tkl_iso": {
- "layout": [{"label":"F1", "x":0, "y":0}, {"label":"esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"-", "x":12.5, "y":0}, {"label":"=", "x":13.5, "y":0}, {"label":"BckSpc", "x":14.5, "y":0, "w":2}, {"label":"split", "x":15.5, "y":0}, {"label":"ins", "x":17, "y":0}, {"label":"home", "x":18, "y":0}, {"label":"pg up", "x":19, "y":0}, {"label":"F2", "x":0, "y":1}, {"label":"tab", "x":1.5, "y":1, "w":1.5}, {"label":"q", "x":3, "y":1}, {"label":"w", "x":4, "y":1}, {"label":"e", "x":5, "y":1}, {"label":"r", "x":6, "y":1}, {"label":"t", "x":7, "y":1}, {"label":"y", "x":8, "y":1}, {"label":"u", "x":9, "y":1}, {"label":"i", "x":10, "y":1}, {"label":"o", "x":11, "y":1}, {"label":"p", "x":12, "y":1}, {"label":"[", "x":13, "y":1}, {"label":"]", "x":14, "y":1}, {"label":"iso", "x":15.25, "y":1, "w":1.25, "h":2}, {"label":"del", "x":17, "y":1}, {"label":"end", "x":18, "y":1}, {"label":"pg dn", "x":19, "y":1}, {"label":"F3", "x":0, "y":2}, {"label":"caps", "x":1.5, "y":2, "w":1.25}, {"label":"a", "x":3.25, "y":2}, {"label":"s", "x":4.25, "y":2}, {"label":"d", "x":5.25, "y":2}, {"label":"f", "x":6.25, "y":2}, {"label":"g", "x":7.25, "y":2}, {"label":"h", "x":8.25, "y":2}, {"label":"j", "x":9.25, "y":2}, {"label":"k", "x":10.25, "y":2}, {"label":"l", "x":11.25, "y":2}, {"label":";", "x":12.25, "y":2}, {"label":"'", "x":13.25, "y":2}, {"label":"\\", "x":14.25, "y":2}, {"label":"F4", "x":0, "y":3}, {"label":"ls1", "x":1.5, "y":3, "w":1.25}, {"label":"ls2", "x":2.75, "y":3}, {"label":"z", "x":3.75, "y":3}, {"label":"x", "x":4.75, "y":3}, {"label":"c", "x":5.75, "y":3}, {"label":"v", "x":6.75, "y":3}, {"label":"b", "x":7.75, "y":3}, {"label":"n", "x":8.75, "y":3}, {"label":"m", "x":9.75, "y":3}, {"label":",", "x":10.75, "y":3}, {"label":".", "x":11.75, "y":3}, {"label":"/", "x":12.75, "y":3}, {"label":"rs1", "x":13.75, "y":3, "w":1.75}, {"label":"rs2", "x":15.5, "y":3}, {"label":"up", "x":18, "y":3}, {"label":"F5", "x":0, "y":4}, {"label":"lctrl", "x":1.5, "y":4, "w":1.25}, {"label":"lwin", "x":2.75, "y":4, "w":1.25}, {"label":"lalt", "x":4, "y":4, "w":1.25}, {"label":"spce", "x":5.25, "y":4, "w":6.25}, {"label":"ralt", "x":11.5, "y":4, "w":1.25}, {"label":"fn", "x":12.75, "y":4, "w":1.25}, {"label":"rwin", "x":14, "y":4}, {"label":"rctrl", "x":15, "y":4, "w":1.5}, {"label":"left", "x":17, "y":4}, {"label":"down", "x":18, "y":4}, {"label":"right", "x":19, "y":4}]
- },
- "LAYOUT_tkl_iso_7u": {
- "layout": [{"label":"F1", "x":0, "y":0}, {"label":"esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"-", "x":12.5, "y":0}, {"label":"=", "x":13.5, "y":0}, {"label":"BckSpc", "x":14.5, "y":0, "w":2}, {"label":"split", "x":15.5, "y":0}, {"label":"ins", "x":17, "y":0}, {"label":"home", "x":18, "y":0}, {"label":"pg up", "x":19, "y":0}, {"label":"F2", "x":0, "y":1}, {"label":"tab", "x":1.5, "y":1, "w":1.5}, {"label":"q", "x":3, "y":1}, {"label":"w", "x":4, "y":1}, {"label":"e", "x":5, "y":1}, {"label":"r", "x":6, "y":1}, {"label":"t", "x":7, "y":1}, {"label":"y", "x":8, "y":1}, {"label":"u", "x":9, "y":1}, {"label":"i", "x":10, "y":1}, {"label":"o", "x":11, "y":1}, {"label":"p", "x":12, "y":1}, {"label":"[", "x":13, "y":1}, {"label":"]", "x":14, "y":1}, {"label":"iso", "x":15.25, "y":1, "w":1.25, "h":2}, {"label":"del", "x":17, "y":1}, {"label":"end", "x":18, "y":1}, {"label":"pg dn", "x":19, "y":1}, {"label":"F3", "x":0, "y":2}, {"label":"caps", "x":1.5, "y":2, "w":1.25}, {"label":"a", "x":3.25, "y":2}, {"label":"s", "x":4.25, "y":2}, {"label":"d", "x":5.25, "y":2}, {"label":"f", "x":6.25, "y":2}, {"label":"g", "x":7.25, "y":2}, {"label":"h", "x":8.25, "y":2}, {"label":"j", "x":9.25, "y":2}, {"label":"k", "x":10.25, "y":2}, {"label":"l", "x":11.25, "y":2}, {"label":";", "x":12.25, "y":2}, {"label":"'", "x":13.25, "y":2}, {"label":"13,2", "x":14.25, "y":2}, {"label":"F4", "x":0, "y":3}, {"label":"ls1", "x":1.5, "y":3, "w":1.25}, {"label":"ls2", "x":2.75, "y":3}, {"label":"z", "x":3.75, "y":3}, {"label":"x", "x":4.75, "y":3}, {"label":"c", "x":5.75, "y":3}, {"label":"v", "x":6.75, "y":3}, {"label":"b", "x":7.75, "y":3}, {"label":"n", "x":8.75, "y":3}, {"label":"m", "x":9.75, "y":3}, {"label":",", "x":10.75, "y":3}, {"label":".", "x":11.75, "y":3}, {"label":"/", "x":12.75, "y":3}, {"label":"rs1", "x":13.75, "y":3, "w":1.75}, {"label":"rs2", "x":15.5, "y":3}, {"label":"up", "x":18, "y":3}, {"label":"F5", "x":0, "y":4}, {"label":"lctrl", "x":1.5, "y":4, "w":1.5}, {"label":"lwin", "x":3, "y":4}, {"label":"lalt", "x":4, "y":4, "w":1.5}, {"label":"spce", "x":5.5, "y":4, "w":7}, {"label":"ralt", "x":12.5, "y":4, "w":1.5}, {"label":"fn", "x":14, "y":4, "w":1.25}, {"label":"rctrl", "x":15.25, "y":4, "w":1.25}, {"label":"left", "x":17, "y":4}, {"label":"down", "x":18, "y":4}, {"label":"right", "x":19, "y":4}]
- }
+ "LAYOUT_ansi_tsangan_split_bs": {
+ "layout": [
+ {"label":"F1", "x":0, "y":0},
+ {"label":"Esc", "x":1.5, "y":0},
+ {"label":"1!", "x":2.5, "y":0},
+ {"label":"2@", "x":3.5, "y":0},
+ {"label":"3#", "x":4.5, "y":0},
+ {"label":"4$", "x":5.5, "y":0},
+ {"label":"5%", "x":6.5, "y":0},
+ {"label":"6^", "x":7.5, "y":0},
+ {"label":"7&", "x":8.5, "y":0},
+ {"label":"8*", "x":9.5, "y":0},
+ {"label":"9(", "x":10.5, "y":0},
+ {"label":"0)", "x":11.5, "y":0},
+ {"label":"-_", "x":12.5, "y":0},
+ {"label":"=+", "x":13.5, "y":0},
+ {"label":"Backspace", "x":14.5, "y":0},
+ {"label":"Split Backspace", "x":15.5, "y":0},
+ {"label":"Insert", "x":17, "y":0},
+ {"label":"Home", "x":18, "y":0},
+ {"label":"Page Up", "x":19, "y":0},
+
+ {"label":"F2", "x":0, "y":1},
+ {"label":"Tab", "x":1.5, "y":1, "w":1.5},
+ {"label":"Q", "x":3, "y":1},
+ {"label":"W", "x":4, "y":1},
+ {"label":"E", "x":5, "y":1},
+ {"label":"R", "x":6, "y":1},
+ {"label":"T", "x":7, "y":1},
+ {"label":"Y", "x":8, "y":1},
+ {"label":"U", "x":9, "y":1},
+ {"label":"I", "x":10, "y":1},
+ {"label":"O", "x":11, "y":1},
+ {"label":"P", "x":12, "y":1},
+ {"label":"[{", "x":13, "y":1},
+ {"label":"]}", "x":14, "y":1},
+ {"label":"\\|", "x":15, "y":1, "w":1.5},
+ {"label":"Delete", "x":17, "y":1},
+ {"label":"End", "x":18, "y":1},
+ {"label":"Page Down", "x":19, "y":1},
+
+ {"label":"F3", "x":0, "y":2},
+ {"label":"Caps Lock", "x":1.5, "y":2, "w":1.25},
+ {"label":"A", "x":3.25, "y":2},
+ {"label":"S", "x":4.25, "y":2},
+ {"label":"D", "x":5.25, "y":2},
+ {"label":"F", "x":6.25, "y":2},
+ {"label":"G", "x":7.25, "y":2},
+ {"label":"H", "x":8.25, "y":2},
+ {"label":"J", "x":9.25, "y":2},
+ {"label":"K", "x":10.25, "y":2},
+ {"label":"L", "x":11.25, "y":2},
+ {"label":";:", "x":12.25, "y":2},
+ {"label":"'\"", "x":13.25, "y":2},
+ {"label":"Enter", "x":14.25, "y":2, "w":2.25},
+
+ {"label":"F4", "x":0, "y":3},
+ {"label":"Shift", "x":1.5, "y":3, "w":2.25},
+ {"label":"Z", "x":3.75, "y":3},
+ {"label":"X", "x":4.75, "y":3},
+ {"label":"C", "x":5.75, "y":3},
+ {"label":"V", "x":6.75, "y":3},
+ {"label":"B", "x":7.75, "y":3},
+ {"label":"N", "x":8.75, "y":3},
+ {"label":"M", "x":9.75, "y":3},
+ {"label":",<", "x":10.75, "y":3},
+ {"label":".>", "x":11.75, "y":3},
+ {"label":"/?", "x":12.75, "y":3},
+ {"label":"Shift", "x":13.75, "y":3, "w":2.75},
+ {"label":"\u2191", "x":18, "y":3},
+
+ {"label":"F5", "x":0, "y":4},
+ {"label":"Ctrl", "x":1.5, "y":4, "w":1.5},
+ {"label":"Win", "x":3, "y":4},
+ {"label":"Alt", "x":4, "y":4, "w":1.5},
+ {"label":"Space", "x":5.5, "y":4, "w":7},
+ {"label":"Alt", "x":12.5, "y":4, "w":1.5},
+ {"label":"Fn", "x":14, "y":4},
+ {"label":"Ctrl", "x":15, "y":4, "w":1.5},
+ {"label":"\u2190", "x":17, "y":4},
+ {"label":"\u2193", "x":18, "y":4},
+ {"label":"\u2192", "x":19, "y":4}
+ ]
+ },
+ "LAYOUT_iso_split_bs_rshift": {
+ "layout": [
+ {"label":"F1", "x":0, "y":0},
+ {"label":"Esc", "x":1.5, "y":0},
+ {"label":"1!", "x":2.5, "y":0},
+ {"label":"2\"", "x":3.5, "y":0},
+ {"label":"3#", "x":4.5, "y":0},
+ {"label":"4\u00a3", "x":5.5, "y":0},
+ {"label":"5%", "x":6.5, "y":0},
+ {"label":"6^", "x":7.5, "y":0},
+ {"label":"7&", "x":8.5, "y":0},
+ {"label":"8*", "x":9.5, "y":0},
+ {"label":"9(", "x":10.5, "y":0},
+ {"label":"0)", "x":11.5, "y":0},
+ {"label":"-_", "x":12.5, "y":0},
+ {"label":"=+", "x":13.5, "y":0},
+ {"label":"Backspace", "x":14.5, "y":0},
+ {"label":"Split Backspace", "x":15.5, "y":0},
+ {"label":"Insert", "x":17, "y":0},
+ {"label":"Home", "x":18, "y":0},
+ {"label":"Page Up", "x":19, "y":0},
+
+ {"label":"F2", "x":0, "y":1},
+ {"label":"Tab", "x":1.5, "y":1, "w":1.5},
+ {"label":"Q", "x":3, "y":1},
+ {"label":"W", "x":4, "y":1},
+ {"label":"E", "x":5, "y":1},
+ {"label":"R", "x":6, "y":1},
+ {"label":"T", "x":7, "y":1},
+ {"label":"Y", "x":8, "y":1},
+ {"label":"U", "x":9, "y":1},
+ {"label":"I", "x":10, "y":1},
+ {"label":"O", "x":11, "y":1},
+ {"label":"P", "x":12, "y":1},
+ {"label":"[{", "x":13, "y":1},
+ {"label":"]}", "x":14, "y":1},
+ {"label":"Delete", "x":17, "y":1},
+ {"label":"End", "x":18, "y":1},
+ {"label":"Page Down", "x":19, "y":1},
+
+ {"label":"F3", "x":0, "y":2},
+ {"label":"Caps Lock", "x":1.5, "y":2, "w":1.25},
+ {"label":"A", "x":3.25, "y":2},
+ {"label":"S", "x":4.25, "y":2},
+ {"label":"D", "x":5.25, "y":2},
+ {"label":"F", "x":6.25, "y":2},
+ {"label":"G", "x":7.25, "y":2},
+ {"label":"H", "x":8.25, "y":2},
+ {"label":"J", "x":9.25, "y":2},
+ {"label":"K", "x":10.25, "y":2},
+ {"label":"L", "x":11.25, "y":2},
+ {"label":";:", "x":12.25, "y":2},
+ {"label":"'@", "x":13.25, "y":2},
+ {"label":"#~", "x":14.25, "y":2},
+ {"label":"Enter", "x":15.25, "y":1, "w":1.25, "h":2},
+
+ {"label":"F4", "x":0, "y":3},
+ {"label":"Shift", "x":1.5, "y":3, "w":1.25},
+ {"label":"\\|", "x":2.75, "y":3},
+ {"label":"Z", "x":3.75, "y":3},
+ {"label":"X", "x":4.75, "y":3},
+ {"label":"C", "x":5.75, "y":3},
+ {"label":"V", "x":6.75, "y":3},
+ {"label":"B", "x":7.75, "y":3},
+ {"label":"N", "x":8.75, "y":3},
+ {"label":"M", "x":9.75, "y":3},
+ {"label":",<", "x":10.75, "y":3},
+ {"label":".>", "x":11.75, "y":3},
+ {"label":"/?", "x":12.75, "y":3},
+ {"label":"Shift", "x":13.75, "y":3, "w":1.75},
+ {"label":"Shift 2", "x":15.5, "y":3},
+ {"label":"\u2191", "x":18, "y":3},
+
+ {"label":"F5", "x":0, "y":4},
+ {"label":"Ctrl", "x":1.5, "y":4, "w":1.25},
+ {"label":"Win", "x":2.75, "y":4, "w":1.25},
+ {"label":"Alt", "x":4, "y":4, "w":1.25},
+ {"label":"Space", "x":5.25, "y":4, "w":6.25},
+ {"label":"Alt", "x":11.5, "y":4, "w":1.25},
+ {"label":"Fn", "x":12.75, "y":4, "w":1.25},
+ {"label":"Win", "x":14, "y":4, "w":1.25},
+ {"label":"Ctrl", "x":15.25, "y":4, "w":1.25},
+ {"label":"\u2190", "x":17, "y":4},
+ {"label":"\u2193", "x":18, "y":4},
+ {"label":"\u2192", "x":19, "y":4}
+ ]
+ },
+ "LAYOUT_iso_tsangan_split_bs_rshift": {
+ "layout": [
+ {"label":"F1", "x":0, "y":0},
+ {"label":"Esc", "x":1.5, "y":0},
+ {"label":"1!", "x":2.5, "y":0},
+ {"label":"2\"", "x":3.5, "y":0},
+ {"label":"3#", "x":4.5, "y":0},
+ {"label":"4\u00a3", "x":5.5, "y":0},
+ {"label":"5%", "x":6.5, "y":0},
+ {"label":"6^", "x":7.5, "y":0},
+ {"label":"7&", "x":8.5, "y":0},
+ {"label":"8*", "x":9.5, "y":0},
+ {"label":"9(", "x":10.5, "y":0},
+ {"label":"0)", "x":11.5, "y":0},
+ {"label":"-_", "x":12.5, "y":0},
+ {"label":"=+", "x":13.5, "y":0},
+ {"label":"Backspace", "x":14.5, "y":0},
+ {"label":"Split Backspace", "x":15.5, "y":0},
+ {"label":"Insert", "x":17, "y":0},
+ {"label":"Home", "x":18, "y":0},
+ {"label":"Page Up", "x":19, "y":0},
+
+ {"label":"F2", "x":0, "y":1},
+ {"label":"Tab", "x":1.5, "y":1, "w":1.5},
+ {"label":"Q", "x":3, "y":1},
+ {"label":"W", "x":4, "y":1},
+ {"label":"E", "x":5, "y":1},
+ {"label":"R", "x":6, "y":1},
+ {"label":"T", "x":7, "y":1},
+ {"label":"Y", "x":8, "y":1},
+ {"label":"U", "x":9, "y":1},
+ {"label":"I", "x":10, "y":1},
+ {"label":"O", "x":11, "y":1},
+ {"label":"P", "x":12, "y":1},
+ {"label":"[{", "x":13, "y":1},
+ {"label":"]}", "x":14, "y":1},
+ {"label":"Delete", "x":17, "y":1},
+ {"label":"End", "x":18, "y":1},
+ {"label":"Page Down", "x":19, "y":1},
+
+ {"label":"F3", "x":0, "y":2},
+ {"label":"Caps Lock", "x":1.5, "y":2, "w":1.25},
+ {"label":"A", "x":3.25, "y":2},
+ {"label":"S", "x":4.25, "y":2},
+ {"label":"D", "x":5.25, "y":2},
+ {"label":"F", "x":6.25, "y":2},
+ {"label":"G", "x":7.25, "y":2},
+ {"label":"H", "x":8.25, "y":2},
+ {"label":"J", "x":9.25, "y":2},
+ {"label":"K", "x":10.25, "y":2},
+ {"label":"L", "x":11.25, "y":2},
+ {"label":";:", "x":12.25, "y":2},
+ {"label":"'@", "x":13.25, "y":2},
+ {"label":"#~", "x":14.25, "y":2},
+ {"label":"Enter", "x":15.25, "y":1, "w":1.25, "h":2},
+
+ {"label":"F4", "x":0, "y":3},
+ {"label":"Shift", "x":1.5, "y":3, "w":1.25},
+ {"label":"\\|", "x":2.75, "y":3},
+ {"label":"Z", "x":3.75, "y":3},
+ {"label":"X", "x":4.75, "y":3},
+ {"label":"C", "x":5.75, "y":3},
+ {"label":"V", "x":6.75, "y":3},
+ {"label":"B", "x":7.75, "y":3},
+ {"label":"N", "x":8.75, "y":3},
+ {"label":"M", "x":9.75, "y":3},
+ {"label":",<", "x":10.75, "y":3},
+ {"label":".>", "x":11.75, "y":3},
+ {"label":"/?", "x":12.75, "y":3},
+ {"label":"Shift", "x":13.75, "y":3, "w":1.75},
+ {"label":"Shift2", "x":15.5, "y":3},
+ {"label":"\u2191", "x":18, "y":3},
+
+ {"label":"F5", "x":0, "y":4},
+ {"label":"Ctrl", "x":1.5, "y":4, "w":1.5},
+ {"label":"Win", "x":3, "y":4},
+ {"label":"Alt", "x":4, "y":4, "w":1.5},
+ {"label":"Space", "x":5.5, "y":4, "w":7},
+ {"label":"Alt", "x":12.5, "y":4, "w":1.5},
+ {"label":"Fn", "x":14, "y":4},
+ {"label":"Ctrl", "x":15, "y":4, "w":1.5},
+ {"label":"\u2190", "x":17, "y":4},
+ {"label":"\u2193", "x":18, "y":4},
+ {"label":"\u2192", "x":19, "y":4}
+ ]
+ }
}
}
diff --git a/keyboards/wavtype/foundation/keymaps/default/keymap.c b/keyboards/wavtype/foundation/keymaps/default/keymap.c
index eea83c9889cf..1e9bd709f73a 100644
--- a/keyboards/wavtype/foundation/keymaps/default/keymap.c
+++ b/keyboards/wavtype/foundation/keymaps/default/keymap.c
@@ -11,18 +11,18 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
- [0] = LAYOUT(
- KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
- KC_F2, 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_DEL, KC_PGDN,
- KC_F3, 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_F4, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT, KC_UP,
- KC_F5, KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT
+ [_BASE] = LAYOUT_ansi_split_bs(
+ KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F2, 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_DEL, KC_PGDN,
+ KC_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT(
- RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP,
- RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, 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, KC_TRNS, 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_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
- RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ [_FN] = LAYOUT_ansi_split_bs(
+ RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP,
+ RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, 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, KC_TRNS, 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_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
)
};
diff --git a/keyboards/wavtype/foundation/keymaps/default_ansi_tsangan_split_bs/keymap.c b/keyboards/wavtype/foundation/keymaps/default_ansi_tsangan_split_bs/keymap.c
new file mode 100644
index 000000000000..304517d43ae8
--- /dev/null
+++ b/keyboards/wavtype/foundation/keymaps/default_ansi_tsangan_split_bs/keymap.c
@@ -0,0 +1,28 @@
+// Copyright 2022 wavtype (@wavtype)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_ansi_tsangan_split_bs(
+ KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F2, 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_DEL, KC_PGDN,
+ KC_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [_FN] = LAYOUT_ansi_tsangan_split_bs(
+ RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP,
+ RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, 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, KC_TRNS, 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_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ )
+};
diff --git a/keyboards/wavtype/foundation/keymaps/default_iso_split_bs_rshift/keymap.c b/keyboards/wavtype/foundation/keymaps/default_iso_split_bs_rshift/keymap.c
new file mode 100644
index 000000000000..e93a0771e3f4
--- /dev/null
+++ b/keyboards/wavtype/foundation/keymaps/default_iso_split_bs_rshift/keymap.c
@@ -0,0 +1,28 @@
+// Copyright 2022 wavtype (@wavtype)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_iso_split_bs_rshift(
+ KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F2, 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_DEL, KC_DEL, KC_PGDN,
+ KC_F3, 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_F4, 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_RSFT, KC_UP,
+ KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [_FN] = LAYOUT_iso_split_bs_rshift(
+ RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP,
+ RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RGB_HUI, KC_TRNS, KC_TRNS, 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_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ )
+};
diff --git a/keyboards/wavtype/foundation/keymaps/default_iso_tsangan_split_bs_rshift/keymap.c b/keyboards/wavtype/foundation/keymaps/default_iso_tsangan_split_bs_rshift/keymap.c
new file mode 100644
index 000000000000..b9561bc39bd1
--- /dev/null
+++ b/keyboards/wavtype/foundation/keymaps/default_iso_tsangan_split_bs_rshift/keymap.c
@@ -0,0 +1,28 @@
+// Copyright 2022 wavtype (@wavtype)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_iso_tsangan_split_bs_rshift(
+ KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F2, 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_DEL, KC_DEL, KC_PGDN,
+ KC_F3, 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_F4, 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_RSFT, KC_UP,
+ KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [_FN] = LAYOUT_iso_tsangan_split_bs_rshift(
+ RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP,
+ RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RGB_HUI, KC_TRNS, KC_TRNS, 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_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ )
+};
diff --git a/keyboards/wavtype/foundation/keymaps/via/keymap.c b/keyboards/wavtype/foundation/keymaps/via/keymap.c
index 2dcb0bebc839..ba8929c1a9e2 100644
--- a/keyboards/wavtype/foundation/keymaps/via/keymap.c
+++ b/keyboards/wavtype/foundation/keymaps/via/keymap.c
@@ -11,32 +11,32 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
- [0] = LAYOUT(
- KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
- KC_F2, 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_DEL, KC_PGDN,
- KC_F3, 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_F4, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT, KC_UP,
- KC_F5, KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT
+ [_BASE] = LAYOUT_ansi_split_bs(
+ KC_F1, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F2, 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_DEL, KC_PGDN,
+ KC_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT(
- RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP,
- RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, 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, KC_TRNS, 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_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
- RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ [_FN] = LAYOUT_ansi_split_bs(
+ RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP,
+ RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, 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, KC_TRNS, 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_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
+ RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
),
- [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
+ [2] = LAYOUT_ansi_split_bs(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ 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
+ [3] = LAYOUT_ansi_split_bs(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
From aec9942f37ba57a8b5ac02b13ebcc1d0fd496581 Mon Sep 17 00:00:00 2001
From: eason <98533237+EasonQian1@users.noreply.github.com>
Date: Wed, 6 Apr 2022 02:06:05 +0800
Subject: [PATCH 111/221] add folders and capsule65 (#16687)
---
keyboards/eason/capsule65/capsule65.c | 17 ++++
keyboards/eason/capsule65/capsule65.h | 48 +++++++++++
keyboards/eason/capsule65/config.h | 63 +++++++++++++++
keyboards/eason/capsule65/info.json | 81 +++++++++++++++++++
.../eason/capsule65/keymaps/default/keymap.c | 39 +++++++++
.../eason/capsule65/keymaps/via/keymap.c | 57 +++++++++++++
.../eason/capsule65/keymaps/via/rules.mk | 2 +
keyboards/eason/capsule65/readme.md | 17 ++++
keyboards/eason/capsule65/rules.mk | 18 +++++
9 files changed, 342 insertions(+)
create mode 100644 keyboards/eason/capsule65/capsule65.c
create mode 100644 keyboards/eason/capsule65/capsule65.h
create mode 100644 keyboards/eason/capsule65/config.h
create mode 100644 keyboards/eason/capsule65/info.json
create mode 100644 keyboards/eason/capsule65/keymaps/default/keymap.c
create mode 100644 keyboards/eason/capsule65/keymaps/via/keymap.c
create mode 100644 keyboards/eason/capsule65/keymaps/via/rules.mk
create mode 100644 keyboards/eason/capsule65/readme.md
create mode 100644 keyboards/eason/capsule65/rules.mk
diff --git a/keyboards/eason/capsule65/capsule65.c b/keyboards/eason/capsule65/capsule65.c
new file mode 100644
index 000000000000..c04abea9e4c2
--- /dev/null
+++ b/keyboards/eason/capsule65/capsule65.c
@@ -0,0 +1,17 @@
+/* Copyright 2022 EASON
+ *
+ * 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 .
+ */
+
+#include "capsule65.h"
diff --git a/keyboards/eason/capsule65/capsule65.h b/keyboards/eason/capsule65/capsule65.h
new file mode 100644
index 000000000000..c7923f122661
--- /dev/null
+++ b/keyboards/eason/capsule65/capsule65.h
@@ -0,0 +1,48 @@
+/* Copyright 2022 EASON XIAOXUXK@YEAH.NET
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤───┤
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1F │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤───┤
+ * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2F │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴┬───────┬───┤───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B│3C │3D │3F │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┼───┬───┼───┤───┤
+ * │40 │41 │42 │45 │49 │4A │4B │4C │4D │4F │
+ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘───┘
+ */
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
+ K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4F \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, K1F }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, XXX, K2F }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, K3F }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, XXX, K4F }, \
+}
diff --git a/keyboards/eason/capsule65/config.h b/keyboards/eason/capsule65/config.h
new file mode 100644
index 000000000000..9228330e8ad7
--- /dev/null
+++ b/keyboards/eason/capsule65/config.h
@@ -0,0 +1,63 @@
+/* Copyright 2022 EASON XIAOXUXK@YEAH.NET
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xF21E
+#define PRODUCT_ID 0x6E6E
+#define DEVICE_VER 0x0001
+#define MANUFACTURER eason
+#define PRODUCT capsule65
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 16
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F4, D1, B7, D0, F5 }
+#define MATRIX_COL_PINS { D5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7, E2, B3, B1, B0, B2 }
+
+#define DIODE_DIRECTION COL2ROW
+
+#define LED_CAPS_LOCK_PIN F6
+
+#define RGB_DI_PIN F7
+#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 RGBLED_NUM 6
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/eason/capsule65/info.json b/keyboards/eason/capsule65/info.json
new file mode 100644
index 000000000000..2a625b5c8498
--- /dev/null
+++ b/keyboards/eason/capsule65/info.json
@@ -0,0 +1,81 @@
+{
+ "keyboard_name": "CAPSULE65",
+ "url": "",
+ "maintainer": "eason",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ { "label": "K00 (F4,D5)", "x": 0, "y": 0 },
+ { "label": "K01 (F4,D2)", "x": 1, "y": 0 },
+ { "label": "K02 (F4,D3)", "x": 2, "y": 0 },
+ { "label": "K03 (F4,D4)", "x": 3, "y": 0 },
+ { "label": "K04 (F4,D6)", "x": 4, "y": 0 },
+ { "label": "K05 (F4,D7)", "x": 5, "y": 0 },
+ { "label": "K06 (F4,B4)", "x": 6, "y": 0 },
+ { "label": "K07 (F4,B5)", "x": 7, "y": 0 },
+ { "label": "K08 (F4,B6)", "x": 8, "y": 0 },
+ { "label": "K09 (F4,C6)", "x": 9, "y": 0 },
+ { "label": "K0A (F4,C7)", "x": 10, "y": 0 },
+ { "label": "K0B (F4,E2)", "x": 11, "y": 0 },
+ { "label": "K0C (F4,B3)", "x": 12, "y": 0 },
+ { "label": "K0D (F4,B1)", "x": 13, "y": 0 },
+ { "label": "K0E (F4,B0)", "x": 14, "y": 0 },
+ { "label": "K0F (F4,B2)", "x": 15, "y": 0 },
+ { "label": "K10 (D1,D5)", "x": 0, "y": 1 ,"w":1.5},
+ { "label": "K11 (D1,D2)", "x": 1.5, "y": 1},
+ { "label": "K12 (D1,D3)", "x": 2.5, "y": 1 },
+ { "label": "K13 (D1,D4)", "x": 3.5, "y": 1 },
+ { "label": "K14 (D1,D6)", "x": 4.5, "y": 1 },
+ { "label": "K15 (D1,D7)", "x": 5.5, "y": 1 },
+ { "label": "K16 (D1,B4)", "x": 6.5, "y": 1 },
+ { "label": "K17 (D1,B5)", "x": 7.5, "y": 1 },
+ { "label": "K18 (D1,B6)", "x": 8.5, "y": 1 },
+ { "label": "K19 (D1,C6)", "x": 9.5, "y": 1 },
+ { "label": "K1A (D1,C7)", "x": 10.5, "y": 1 },
+ { "label": "K1B (D1,E2)", "x": 11.5, "y": 1 },
+ { "label": "K1C (D1,B3)", "x": 12.5, "y": 1 },
+ { "label": "K1D (D1,B1)", "x": 13.5, "y": 1 ,"w":1.5},
+ { "label": "K1F (D1,B2)", "x": 15, "y": 1 },
+ { "label": "K20 (B7,D5)", "x": 0, "y": 2,"w":1.75 },
+ { "label": "K21 (B7,D2)", "x": 1.75, "y": 2 },
+ { "label": "K22 (B7,D3)", "x": 2.75, "y": 2 },
+ { "label": "K23 (B7,D4)", "x": 3.75, "y": 2 },
+ { "label": "K24 (B7,D6)", "x": 4.75, "y": 2 },
+ { "label": "K25 (B7,D7)", "x": 5.75, "y": 2 },
+ { "label": "K26 (B7,B4)", "x": 6.75, "y": 2 },
+ { "label": "K27 (B7,B5)", "x": 7.75, "y": 2 },
+ { "label": "K28 (B7,B6)", "x": 8.75, "y": 2 },
+ { "label": "K29 (B7,C6)", "x": 9.75, "y": 2 },
+ { "label": "K2A (B7,C7)", "x": 10.75, "y": 2 },
+ { "label": "K2B (B7,E2)", "x": 11.75, "y": 2 },
+ { "label": "K2C (B7,B3)", "x": 12.75, "y": 2 ,"w":2.25},
+ { "label": "K2F (B7,B2)", "x": 15, "y": 2 },
+ { "label": "K30 (D0,D5)", "x": 0, "y": 3 ,"w":1.25},
+ { "label": "K31 (D0,D2)", "x": 1.25, "y": 3 },
+ { "label": "K32 (D0,D3)", "x": 2.25, "y": 3 },
+ { "label": "K33 (D0,D4)", "x": 3.25, "y": 3 },
+ { "label": "K34 (D0,D6)", "x": 4.25, "y": 3 },
+ { "label": "K35 (D0,D7)", "x": 5.25, "y": 3 },
+ { "label": "K36 (D0,B4)", "x": 6.25, "y": 3 },
+ { "label": "K37 (D0,B5)", "x": 7.25, "y": 3 },
+ { "label": "K38 (D0,B6)", "x": 8.25, "y": 3 },
+ { "label": "K39 (D0,C6)", "x": 9.25, "y": 3 },
+ { "label": "K3A (D0,C7)", "x": 10.25, "y": 3 },
+ { "label": "K3B (D0,E2)", "x": 11.25, "y": 3 },
+ { "label": "K3C (D0,B3)", "x": 12.25, "y": 3 ,"w":1.75 },
+ { "label": "K3D (D0,B1)", "x": 14, "y": 3 },
+ { "label": "K3F (D0,B2)", "x": 15, "y": 3 },
+ { "label": "K40 (F5,D5)", "x": 0, "y": 4 ,"w":1.25},
+ { "label": "K41 (F5,D2)", "x": 1.25, "y": 4 ,"w":1.25},
+ { "label": "K42 (F5,D3)", "x": 2.5, "y": 4 ,"w":1.25},
+ { "label": "K45 (F5,D7)", "x": 3.75, "y": 4,"w":6.25 },
+ { "label": "K49 (F5,C6)", "x": 10, "y": 4 },
+ { "label": "K4A (F5,C7)", "x": 11, "y": 4 },
+ { "label": "K4B (F5,E2)", "x": 12, "y": 4 },
+ { "label": "K4C (F5,B3)", "x": 13, "y": 4 },
+ { "label": "K4D (F5,B1)", "x": 14, "y": 4 },
+ { "label": "K4F (F5,B2)", "x": 15, "y": 4 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/eason/capsule65/keymaps/default/keymap.c b/keyboards/eason/capsule65/keymaps/default/keymap.c
new file mode 100644
index 000000000000..5825f3a8acc8
--- /dev/null
+++ b/keyboards/eason/capsule65/keymaps/default/keymap.c
@@ -0,0 +1,39 @@
+/* Copyright 2022 EASON
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+
+ 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_HOME, 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_END,
+ 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_LSFT, KC_SPC, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, RGB_TOG, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT(
+
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, 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_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, RGB_TOG, KC_TRNS,
+ KC_TRNS, 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_VAI, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_VAD, RGB_HUD
+ ),
+
+};
diff --git a/keyboards/eason/capsule65/keymaps/via/keymap.c b/keyboards/eason/capsule65/keymaps/via/keymap.c
new file mode 100644
index 000000000000..7df223dcf53b
--- /dev/null
+++ b/keyboards/eason/capsule65/keymaps/via/keymap.c
@@ -0,0 +1,57 @@
+/* Copyright 2022 EASON
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+
+ 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_HOME, 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_END,
+ 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_LSFT, KC_TRNS, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, RGB_TOG, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT(
+
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, 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_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, RGB_TOG, KC_TRNS,
+ KC_TRNS, 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_VAI, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_VAD, RGB_HUD
+ ),
+
+ [2] = LAYOUT(
+
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(
+
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+};
diff --git a/keyboards/eason/capsule65/keymaps/via/rules.mk b/keyboards/eason/capsule65/keymaps/via/rules.mk
new file mode 100644
index 000000000000..a2d6d0a96e85
--- /dev/null
+++ b/keyboards/eason/capsule65/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/eason/capsule65/readme.md b/keyboards/eason/capsule65/readme.md
new file mode 100644
index 000000000000..87576e34fa06
--- /dev/null
+++ b/keyboards/eason/capsule65/readme.md
@@ -0,0 +1,17 @@
+# capsule65
+A customizable soldering 65% keyboard.
+Support left shift, backspace split
+* Keyboard Maintainer: [eason](https://github.com/EasonQian1)
+* Hardware Supported: capsule65
+* Hardware Availability: [eason](https://github.com/EasonQian1)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make eason/capsule65:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader Enter the bootloader in 3 ways:
+* **Bootmagic reset**: Hold down esc in the keyboard then replug
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `RESET`
diff --git a/keyboards/eason/capsule65/rules.mk b/keyboards/eason/capsule65/rules.mk
new file mode 100644
index 000000000000..744a2725357a
--- /dev/null
+++ b/keyboards/eason/capsule65/rules.mk
@@ -0,0 +1,18 @@
+# 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 = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 69be0dc97cd6a4e2f9bcae2ce994519051531b32 Mon Sep 17 00:00:00 2001
From: Erovia
Date: Tue, 5 Apr 2022 19:13:00 +0100
Subject: [PATCH 112/221] Fix lineendings for eason/capsule65 (#16801)
---
keyboards/eason/capsule65/config.h | 126 +++++++++++-----------
keyboards/eason/capsule65/info.json | 162 ++++++++++++++--------------
2 files changed, 144 insertions(+), 144 deletions(-)
diff --git a/keyboards/eason/capsule65/config.h b/keyboards/eason/capsule65/config.h
index 9228330e8ad7..34efb3f2a55a 100644
--- a/keyboards/eason/capsule65/config.h
+++ b/keyboards/eason/capsule65/config.h
@@ -1,63 +1,63 @@
-/* Copyright 2022 EASON XIAOXUXK@YEAH.NET
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#pragma once
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xF21E
-#define PRODUCT_ID 0x6E6E
-#define DEVICE_VER 0x0001
-#define MANUFACTURER eason
-#define PRODUCT capsule65
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 16
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
- */
-#define MATRIX_ROW_PINS { F4, D1, B7, D0, F5 }
-#define MATRIX_COL_PINS { D5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7, E2, B3, B1, B0, B2 }
-
-#define DIODE_DIRECTION COL2ROW
-
-#define LED_CAPS_LOCK_PIN F6
-
-#define RGB_DI_PIN F7
-#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 RGBLED_NUM 6
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
+/* Copyright 2022 EASON XIAOXUXK@YEAH.NET
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xF21E
+#define PRODUCT_ID 0x6E6E
+#define DEVICE_VER 0x0001
+#define MANUFACTURER eason
+#define PRODUCT capsule65
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 16
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F4, D1, B7, D0, F5 }
+#define MATRIX_COL_PINS { D5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7, E2, B3, B1, B0, B2 }
+
+#define DIODE_DIRECTION COL2ROW
+
+#define LED_CAPS_LOCK_PIN F6
+
+#define RGB_DI_PIN F7
+#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 RGBLED_NUM 6
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/eason/capsule65/info.json b/keyboards/eason/capsule65/info.json
index 2a625b5c8498..1783d4f2aec5 100644
--- a/keyboards/eason/capsule65/info.json
+++ b/keyboards/eason/capsule65/info.json
@@ -1,81 +1,81 @@
-{
- "keyboard_name": "CAPSULE65",
- "url": "",
- "maintainer": "eason",
- "layouts": {
- "LAYOUT": {
- "layout": [
- { "label": "K00 (F4,D5)", "x": 0, "y": 0 },
- { "label": "K01 (F4,D2)", "x": 1, "y": 0 },
- { "label": "K02 (F4,D3)", "x": 2, "y": 0 },
- { "label": "K03 (F4,D4)", "x": 3, "y": 0 },
- { "label": "K04 (F4,D6)", "x": 4, "y": 0 },
- { "label": "K05 (F4,D7)", "x": 5, "y": 0 },
- { "label": "K06 (F4,B4)", "x": 6, "y": 0 },
- { "label": "K07 (F4,B5)", "x": 7, "y": 0 },
- { "label": "K08 (F4,B6)", "x": 8, "y": 0 },
- { "label": "K09 (F4,C6)", "x": 9, "y": 0 },
- { "label": "K0A (F4,C7)", "x": 10, "y": 0 },
- { "label": "K0B (F4,E2)", "x": 11, "y": 0 },
- { "label": "K0C (F4,B3)", "x": 12, "y": 0 },
- { "label": "K0D (F4,B1)", "x": 13, "y": 0 },
- { "label": "K0E (F4,B0)", "x": 14, "y": 0 },
- { "label": "K0F (F4,B2)", "x": 15, "y": 0 },
- { "label": "K10 (D1,D5)", "x": 0, "y": 1 ,"w":1.5},
- { "label": "K11 (D1,D2)", "x": 1.5, "y": 1},
- { "label": "K12 (D1,D3)", "x": 2.5, "y": 1 },
- { "label": "K13 (D1,D4)", "x": 3.5, "y": 1 },
- { "label": "K14 (D1,D6)", "x": 4.5, "y": 1 },
- { "label": "K15 (D1,D7)", "x": 5.5, "y": 1 },
- { "label": "K16 (D1,B4)", "x": 6.5, "y": 1 },
- { "label": "K17 (D1,B5)", "x": 7.5, "y": 1 },
- { "label": "K18 (D1,B6)", "x": 8.5, "y": 1 },
- { "label": "K19 (D1,C6)", "x": 9.5, "y": 1 },
- { "label": "K1A (D1,C7)", "x": 10.5, "y": 1 },
- { "label": "K1B (D1,E2)", "x": 11.5, "y": 1 },
- { "label": "K1C (D1,B3)", "x": 12.5, "y": 1 },
- { "label": "K1D (D1,B1)", "x": 13.5, "y": 1 ,"w":1.5},
- { "label": "K1F (D1,B2)", "x": 15, "y": 1 },
- { "label": "K20 (B7,D5)", "x": 0, "y": 2,"w":1.75 },
- { "label": "K21 (B7,D2)", "x": 1.75, "y": 2 },
- { "label": "K22 (B7,D3)", "x": 2.75, "y": 2 },
- { "label": "K23 (B7,D4)", "x": 3.75, "y": 2 },
- { "label": "K24 (B7,D6)", "x": 4.75, "y": 2 },
- { "label": "K25 (B7,D7)", "x": 5.75, "y": 2 },
- { "label": "K26 (B7,B4)", "x": 6.75, "y": 2 },
- { "label": "K27 (B7,B5)", "x": 7.75, "y": 2 },
- { "label": "K28 (B7,B6)", "x": 8.75, "y": 2 },
- { "label": "K29 (B7,C6)", "x": 9.75, "y": 2 },
- { "label": "K2A (B7,C7)", "x": 10.75, "y": 2 },
- { "label": "K2B (B7,E2)", "x": 11.75, "y": 2 },
- { "label": "K2C (B7,B3)", "x": 12.75, "y": 2 ,"w":2.25},
- { "label": "K2F (B7,B2)", "x": 15, "y": 2 },
- { "label": "K30 (D0,D5)", "x": 0, "y": 3 ,"w":1.25},
- { "label": "K31 (D0,D2)", "x": 1.25, "y": 3 },
- { "label": "K32 (D0,D3)", "x": 2.25, "y": 3 },
- { "label": "K33 (D0,D4)", "x": 3.25, "y": 3 },
- { "label": "K34 (D0,D6)", "x": 4.25, "y": 3 },
- { "label": "K35 (D0,D7)", "x": 5.25, "y": 3 },
- { "label": "K36 (D0,B4)", "x": 6.25, "y": 3 },
- { "label": "K37 (D0,B5)", "x": 7.25, "y": 3 },
- { "label": "K38 (D0,B6)", "x": 8.25, "y": 3 },
- { "label": "K39 (D0,C6)", "x": 9.25, "y": 3 },
- { "label": "K3A (D0,C7)", "x": 10.25, "y": 3 },
- { "label": "K3B (D0,E2)", "x": 11.25, "y": 3 },
- { "label": "K3C (D0,B3)", "x": 12.25, "y": 3 ,"w":1.75 },
- { "label": "K3D (D0,B1)", "x": 14, "y": 3 },
- { "label": "K3F (D0,B2)", "x": 15, "y": 3 },
- { "label": "K40 (F5,D5)", "x": 0, "y": 4 ,"w":1.25},
- { "label": "K41 (F5,D2)", "x": 1.25, "y": 4 ,"w":1.25},
- { "label": "K42 (F5,D3)", "x": 2.5, "y": 4 ,"w":1.25},
- { "label": "K45 (F5,D7)", "x": 3.75, "y": 4,"w":6.25 },
- { "label": "K49 (F5,C6)", "x": 10, "y": 4 },
- { "label": "K4A (F5,C7)", "x": 11, "y": 4 },
- { "label": "K4B (F5,E2)", "x": 12, "y": 4 },
- { "label": "K4C (F5,B3)", "x": 13, "y": 4 },
- { "label": "K4D (F5,B1)", "x": 14, "y": 4 },
- { "label": "K4F (F5,B2)", "x": 15, "y": 4 }
- ]
- }
- }
-}
+{
+ "keyboard_name": "CAPSULE65",
+ "url": "",
+ "maintainer": "eason",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ { "label": "K00 (F4,D5)", "x": 0, "y": 0 },
+ { "label": "K01 (F4,D2)", "x": 1, "y": 0 },
+ { "label": "K02 (F4,D3)", "x": 2, "y": 0 },
+ { "label": "K03 (F4,D4)", "x": 3, "y": 0 },
+ { "label": "K04 (F4,D6)", "x": 4, "y": 0 },
+ { "label": "K05 (F4,D7)", "x": 5, "y": 0 },
+ { "label": "K06 (F4,B4)", "x": 6, "y": 0 },
+ { "label": "K07 (F4,B5)", "x": 7, "y": 0 },
+ { "label": "K08 (F4,B6)", "x": 8, "y": 0 },
+ { "label": "K09 (F4,C6)", "x": 9, "y": 0 },
+ { "label": "K0A (F4,C7)", "x": 10, "y": 0 },
+ { "label": "K0B (F4,E2)", "x": 11, "y": 0 },
+ { "label": "K0C (F4,B3)", "x": 12, "y": 0 },
+ { "label": "K0D (F4,B1)", "x": 13, "y": 0 },
+ { "label": "K0E (F4,B0)", "x": 14, "y": 0 },
+ { "label": "K0F (F4,B2)", "x": 15, "y": 0 },
+ { "label": "K10 (D1,D5)", "x": 0, "y": 1 ,"w":1.5},
+ { "label": "K11 (D1,D2)", "x": 1.5, "y": 1},
+ { "label": "K12 (D1,D3)", "x": 2.5, "y": 1 },
+ { "label": "K13 (D1,D4)", "x": 3.5, "y": 1 },
+ { "label": "K14 (D1,D6)", "x": 4.5, "y": 1 },
+ { "label": "K15 (D1,D7)", "x": 5.5, "y": 1 },
+ { "label": "K16 (D1,B4)", "x": 6.5, "y": 1 },
+ { "label": "K17 (D1,B5)", "x": 7.5, "y": 1 },
+ { "label": "K18 (D1,B6)", "x": 8.5, "y": 1 },
+ { "label": "K19 (D1,C6)", "x": 9.5, "y": 1 },
+ { "label": "K1A (D1,C7)", "x": 10.5, "y": 1 },
+ { "label": "K1B (D1,E2)", "x": 11.5, "y": 1 },
+ { "label": "K1C (D1,B3)", "x": 12.5, "y": 1 },
+ { "label": "K1D (D1,B1)", "x": 13.5, "y": 1 ,"w":1.5},
+ { "label": "K1F (D1,B2)", "x": 15, "y": 1 },
+ { "label": "K20 (B7,D5)", "x": 0, "y": 2,"w":1.75 },
+ { "label": "K21 (B7,D2)", "x": 1.75, "y": 2 },
+ { "label": "K22 (B7,D3)", "x": 2.75, "y": 2 },
+ { "label": "K23 (B7,D4)", "x": 3.75, "y": 2 },
+ { "label": "K24 (B7,D6)", "x": 4.75, "y": 2 },
+ { "label": "K25 (B7,D7)", "x": 5.75, "y": 2 },
+ { "label": "K26 (B7,B4)", "x": 6.75, "y": 2 },
+ { "label": "K27 (B7,B5)", "x": 7.75, "y": 2 },
+ { "label": "K28 (B7,B6)", "x": 8.75, "y": 2 },
+ { "label": "K29 (B7,C6)", "x": 9.75, "y": 2 },
+ { "label": "K2A (B7,C7)", "x": 10.75, "y": 2 },
+ { "label": "K2B (B7,E2)", "x": 11.75, "y": 2 },
+ { "label": "K2C (B7,B3)", "x": 12.75, "y": 2 ,"w":2.25},
+ { "label": "K2F (B7,B2)", "x": 15, "y": 2 },
+ { "label": "K30 (D0,D5)", "x": 0, "y": 3 ,"w":1.25},
+ { "label": "K31 (D0,D2)", "x": 1.25, "y": 3 },
+ { "label": "K32 (D0,D3)", "x": 2.25, "y": 3 },
+ { "label": "K33 (D0,D4)", "x": 3.25, "y": 3 },
+ { "label": "K34 (D0,D6)", "x": 4.25, "y": 3 },
+ { "label": "K35 (D0,D7)", "x": 5.25, "y": 3 },
+ { "label": "K36 (D0,B4)", "x": 6.25, "y": 3 },
+ { "label": "K37 (D0,B5)", "x": 7.25, "y": 3 },
+ { "label": "K38 (D0,B6)", "x": 8.25, "y": 3 },
+ { "label": "K39 (D0,C6)", "x": 9.25, "y": 3 },
+ { "label": "K3A (D0,C7)", "x": 10.25, "y": 3 },
+ { "label": "K3B (D0,E2)", "x": 11.25, "y": 3 },
+ { "label": "K3C (D0,B3)", "x": 12.25, "y": 3 ,"w":1.75 },
+ { "label": "K3D (D0,B1)", "x": 14, "y": 3 },
+ { "label": "K3F (D0,B2)", "x": 15, "y": 3 },
+ { "label": "K40 (F5,D5)", "x": 0, "y": 4 ,"w":1.25},
+ { "label": "K41 (F5,D2)", "x": 1.25, "y": 4 ,"w":1.25},
+ { "label": "K42 (F5,D3)", "x": 2.5, "y": 4 ,"w":1.25},
+ { "label": "K45 (F5,D7)", "x": 3.75, "y": 4,"w":6.25 },
+ { "label": "K49 (F5,C6)", "x": 10, "y": 4 },
+ { "label": "K4A (F5,C7)", "x": 11, "y": 4 },
+ { "label": "K4B (F5,E2)", "x": 12, "y": 4 },
+ { "label": "K4C (F5,B3)", "x": 13, "y": 4 },
+ { "label": "K4D (F5,B1)", "x": 14, "y": 4 },
+ { "label": "K4F (F5,B2)", "x": 15, "y": 4 }
+ ]
+ }
+ }
+}
From c0216e92fa752afb54a75df386174ddbaec61fef Mon Sep 17 00:00:00 2001
From: QMK Bot
Date: Tue, 5 Apr 2022 11:21:05 -0700
Subject: [PATCH 113/221] Format code according to conventions (#16802)
---
keyboards/eason/capsule65/keymaps/via/rules.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/keyboards/eason/capsule65/keymaps/via/rules.mk b/keyboards/eason/capsule65/keymaps/via/rules.mk
index a2d6d0a96e85..36b7ba9cbc98 100644
--- a/keyboards/eason/capsule65/keymaps/via/rules.mk
+++ b/keyboards/eason/capsule65/keymaps/via/rules.mk
@@ -1,2 +1,2 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
+VIA_ENABLE = yes
+LTO_ENABLE = yes
From 2f917dd768fda45d73ab8fd67138f7ab7d23c76c Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Tue, 5 Apr 2022 11:45:18 -0700
Subject: [PATCH 114/221] Cutie Club Novus Layout Macro Updates (#16792)
* info.json: apply friendly formatting
* rename LAYOUT_all to LAYOUT_60_ansi_split_bs_rshift
Maintains `LAYOUT_all` as an alias to `LAYOUT_60_ansi_split_bs_rshift`.
* novus.h: use QMK 3-character notation
* novus.h: add matrix diagram
* add LAYOUT_60_ansi
* add LAYOUT_60_ansi_tsangan
* refactor keymaps
- update grid alignment
- use QMK-native keycode aliases
* add LAYOUT_60_ansi_tsangan_split_bs_rshift
* rules.mk: update Community Layouts list
---
keyboards/cutie_club/novus/info.json | 547 +++++++++---------
.../cutie_club/novus/keymaps/default/keymap.c | 24 +-
.../cutie_club/novus/keymaps/via/keymap.c | 48 +-
keyboards/cutie_club/novus/novus.h | 83 ++-
keyboards/cutie_club/novus/rules.mk | 2 +
5 files changed, 389 insertions(+), 315 deletions(-)
diff --git a/keyboards/cutie_club/novus/info.json b/keyboards/cutie_club/novus/info.json
index cae4e25c89f6..d4ab2c2b06da 100644
--- a/keyboards/cutie_club/novus/info.json
+++ b/keyboards/cutie_club/novus/info.json
@@ -2,276 +2,287 @@
"keyboard_name": "Novus",
"url": "",
"maintainer": "Cutie Club",
+ "layout_aliases": {
+ "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift"
+ },
"layouts": {
- "LAYOUT_all": {
+ "LAYOUT_60_ansi": {
"layout": [
- {
- "x": 0,
- "y": 0
- },
- {
- "x": 1,
- "y": 0
- },
- {
- "x": 2,
- "y": 0
- },
- {
- "x": 3,
- "y": 0
- },
- {
- "x": 4,
- "y": 0
- },
- {
- "x": 5,
- "y": 0
- },
- {
- "x": 6,
- "y": 0
- },
- {
- "x": 7,
- "y": 0
- },
- {
- "x": 8,
- "y": 0
- },
- {
- "x": 9,
- "y": 0
- },
- {
- "x": 10,
- "y": 0
- },
- {
- "x": 11,
- "y": 0
- },
- {
- "x": 12,
- "y": 0
- },
- {
- "x": 13,
- "y": 0
- },
- {
- "x": 14,
- "y": 0
- },
- {
- "x": 0,
- "y": 1,
- "w": 1.5
- },
- {
- "x": 1.5,
- "y": 1
- },
- {
- "x": 2.5,
- "y": 1
- },
- {
- "x": 3.5,
- "y": 1
- },
- {
- "x": 4.5,
- "y": 1
- },
- {
- "x": 5.5,
- "y": 1
- },
- {
- "x": 6.5,
- "y": 1
- },
- {
- "x": 7.5,
- "y": 1
- },
- {
- "x": 8.5,
- "y": 1
- },
- {
- "x": 9.5,
- "y": 1
- },
- {
- "x": 10.5,
- "y": 1
- },
- {
- "x": 11.5,
- "y": 1
- },
- {
- "x": 12.5,
- "y": 1
- },
- {
- "x": 13.5,
- "y": 1,
- "w": 1.5
- },
- {
- "x": 0,
- "y": 2,
- "w": 1.75
- },
- {
- "x": 1.75,
- "y": 2
- },
- {
- "x": 2.75,
- "y": 2
- },
- {
- "x": 3.75,
- "y": 2
- },
- {
- "x": 4.75,
- "y": 2
- },
- {
- "x": 5.75,
- "y": 2
- },
- {
- "x": 6.75,
- "y": 2
- },
- {
- "x": 7.75,
- "y": 2
- },
- {
- "x": 8.75,
- "y": 2
- },
- {
- "x": 9.75,
- "y": 2
- },
- {
- "x": 10.75,
- "y": 2
- },
- {
- "x": 11.75,
- "y": 2
- },
- {
- "x": 12.75,
- "y": 2,
- "w": 2.25
- },
- {
- "x": 0,
- "y": 3,
- "w": 2.25
- },
- {
- "x": 2.25,
- "y": 3
- },
- {
- "x": 3.25,
- "y": 3
- },
- {
- "x": 4.25,
- "y": 3
- },
- {
- "x": 5.25,
- "y": 3
- },
- {
- "x": 6.25,
- "y": 3
- },
- {
- "x": 7.25,
- "y": 3
- },
- {
- "x": 8.25,
- "y": 3
- },
- {
- "x": 9.25,
- "y": 3
- },
- {
- "x": 10.25,
- "y": 3
- },
- {
- "x": 11.25,
- "y": 3
- },
- {
- "x": 12.25,
- "y": 3,
- "w": 1.75
- },
- {
- "x": 14,
- "y": 3
- },
- {
- "x": 0,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 1.25,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 2.5,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 3.75,
- "y": 4,
- "w": 6.25
- },
- {
- "x": 10,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 11.25,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 12.5,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 13.75,
- "y": 4,
- "w": 1.25
- }
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.75},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":12.5, "y":4, "w":1.25},
+ {"x":13.75, "y":4, "w":1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":12.5, "y":4, "w":1.25},
+ {"x":13.75, "y":4, "w":1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":2.75},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":12.5, "y":4},
+ {"x":13.5, "y":4, "w":1.5}
+ ]
+ }
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":12.5, "y":4},
+ {"x":13.5, "y":4, "w":1.5}
]
}
}
-}
\ No newline at end of file
+}
diff --git a/keyboards/cutie_club/novus/keymaps/default/keymap.c b/keyboards/cutie_club/novus/keymaps/default/keymap.c
index feeb27de8c72..71644146d1c9 100644
--- a/keyboards/cutie_club/novus/keymaps/default/keymap.c
+++ b/keyboards/cutie_club/novus/keymaps/default/keymap.c
@@ -16,18 +16,18 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTRL
+ [0] = LAYOUT_60_ansi_split_bs_rshift(
+ 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_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
),
- [1] = LAYOUT_all(
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
+ [1] = LAYOUT_60_ansi_split_bs_rshift(
+ KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/cutie_club/novus/keymaps/via/keymap.c b/keyboards/cutie_club/novus/keymaps/via/keymap.c
index 24e55dc1cf80..c46017b44fc5 100644
--- a/keyboards/cutie_club/novus/keymaps/via/keymap.c
+++ b/keyboards/cutie_club/novus/keymaps/via/keymap.c
@@ -16,32 +16,32 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTRL
+ [0] = LAYOUT_60_ansi_split_bs_rshift(
+ 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_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
),
- [1] = LAYOUT_all(
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
+ [1] = LAYOUT_60_ansi_split_bs_rshift(
+ KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
),
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
+ [2] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
),
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
+ [3] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/cutie_club/novus/novus.h b/keyboards/cutie_club/novus/novus.h
index 31ed6a8ac640..faea80fd5ace 100644
--- a/keyboards/cutie_club/novus/novus.h
+++ b/keyboards/cutie_club/novus/novus.h
@@ -18,16 +18,77 @@
#include "quantum.h"
-#define LAYOUT_all( \
- k00_00, k00_01, k00_02, k00_03, k00_04, k00_05, k00_06, k00_07, k00_08, k00_09, k00_10, k00_11, k00_12, k00_13, k00_14, \
- k01_00, k01_01, k01_02, k01_03, k01_04, k01_05, k01_06, k01_07, k01_08, k01_09, k01_10, k01_11, k01_12, k01_13, \
- k02_00, k02_01, k02_02, k02_03, k02_04, k02_05, k02_06, k02_07, k02_08, k02_09, k02_10, k02_11, k02_12, \
- k03_00, k03_01, k03_02, k03_03, k03_04, k03_05, k03_06, k03_07, k03_08, k03_09, k03_10, k03_11, k03_12, \
- k04_00, k04_01, k04_02, k04_05, k04_09, k04_10, k04_11, k04_12 \
+#define ___ KC_NO
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0D │ 2u Backspace
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───────┘
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌──────────┐
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │ │3B │ 2.75u RShift
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘
+ * │40 │41 │42 │45 │49 │4A │4B │4C │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+ * │40 │41 │42 │45 │4A │4B │4C │ Tsangan/WKL
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+ */
+
+#define LAYOUT_60_ansi( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \
+ k40, k41, k42, k45, k49, k4A, k4B, k4C \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, ___ }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___ }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, ___, ___ }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, ___, ___, ___ }, \
+ { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, ___, ___ } \
+}
+
+#define LAYOUT_60_ansi_split_bs_rshift( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, \
+ k40, k41, k42, k45, k49, k4A, k4B, k4C \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___ }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, ___, ___ }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, ___ }, \
+ { k40, k41, k42, ___, ___, k45, ___, ___, ___, k49, k4A, k4B, k4C, ___, ___ } \
+}
+
+#define LAYOUT_60_ansi_tsangan( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \
+ k40, k41, k42, k45, k4A, k4B, k4C \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, ___ }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___ }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, ___, ___ }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, ___, ___, ___ }, \
+ { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, ___, ___ } \
+}
+
+#define LAYOUT_60_ansi_tsangan_split_bs_rshift( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, \
+ k40, k41, k42, k45, k4A, k4B, k4C \
) { \
- { k00_00, k00_01, k00_02, k00_03, k00_04, k00_05, k00_06, k00_07, k00_08, k00_09, k00_10, k00_11, k00_12, k00_13, k00_14 }, \
- { k01_00, k01_01, k01_02, k01_03, k01_04, k01_05, k01_06, k01_07, k01_08, k01_09, k01_10, k01_11, k01_12, k01_13, KC_NO }, \
- { k02_00, k02_01, k02_02, k02_03, k02_04, k02_05, k02_06, k02_07, k02_08, k02_09, k02_10, k02_11, k02_12, KC_NO, KC_NO }, \
- { k03_00, k03_01, k03_02, k03_03, k03_04, k03_05, k03_06, k03_07, k03_08, k03_09, k03_10, k03_11, k03_12, KC_NO, KC_NO }, \
- { k04_00, k04_01, k04_02, KC_NO, KC_NO, k04_05, KC_NO, KC_NO, KC_NO, k04_09, k04_10, k04_11, k04_12, KC_NO, KC_NO } \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, ___ }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, ___, ___ }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, ___, ___ }, \
+ { k40, k41, k42, ___, ___, k45, ___, ___, ___, ___, k4A, k4B, k4C, ___, ___ } \
}
diff --git a/keyboards/cutie_club/novus/rules.mk b/keyboards/cutie_club/novus/rules.mk
index 1275531ef6d6..b86bc438dd96 100644
--- a/keyboards/cutie_club/novus/rules.mk
+++ b/keyboards/cutie_club/novus/rules.mk
@@ -16,3 +16,5 @@ NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_ansi_tsangan
From 67bb6e19458e49008ee11fbce3a26e1967edffe4 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Tue, 5 Apr 2022 12:13:45 -0700
Subject: [PATCH 115/221] RGBKB Sol 3 rev1: Configurator Data and Readme
(#16798)
* add QMK Configurator data
* add readme file
---
keyboards/rgbkb/sol3/readme.md | 26 ++++++
keyboards/rgbkb/sol3/rev1/info.json | 118 ++++++++++++++++++++++++++++
2 files changed, 144 insertions(+)
create mode 100644 keyboards/rgbkb/sol3/readme.md
create mode 100644 keyboards/rgbkb/sol3/rev1/info.json
diff --git a/keyboards/rgbkb/sol3/readme.md b/keyboards/rgbkb/sol3/readme.md
new file mode 100644
index 000000000000..c896f7c0cd93
--- /dev/null
+++ b/keyboards/rgbkb/sol3/readme.md
@@ -0,0 +1,26 @@
+# Sol 3
+
+![Sol 3](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/rgbkb/sol3/rev1/rgbkb_sol3_rev1_01.jpg)
+
+An extensible split keyboard with hotswap sockets and per-key RGB lighting.
+
+* Keyboard Maintainer: [XScorpion2](https://github.com/XScorpion2), [RGBKB](https://github.com/rgbkb)
+* Hardware Supported: RGBKB Sol 3 rev1 (STM32F303)
+* Hardware Availability: [RGBKB.net](https://www.rgbkb.net/collections/sol-3)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make rgbkb/sol3/rev1:default
+
+Flashing example for this keyboard:
+
+ make rgbkb/sol3/rev1: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
+
+To reset the board into bootloader mode, do one of the following:
+
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available (Adjust + R by default)
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard (also erases persistent settings)
diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json
new file mode 100644
index 000000000000..7003726b7f2c
--- /dev/null
+++ b/keyboards/rgbkb/sol3/rev1/info.json
@@ -0,0 +1,118 @@
+{
+ "keyboard_name": "Sol 3 rev1",
+ "url": "",
+ "maintainer": "XScorpion2, rgbkb",
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":0, "y":0, "w":1.5},
+ {"x":1.5, "y":0},
+ {"x":2.5, "y":0},
+ {"x":3.5, "y":0},
+ {"x":4.5, "y":0},
+ {"x":5.5, "y":0},
+ {"x":6.75, "y":0},
+
+ {"x":9.25, "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, "w":1.5},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.75, "y":1},
+
+ {"x":9.25, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1},
+ {"x":14.5, "y":1},
+ {"x":15.5, "y":1, "w":1.5},
+
+ {"x":0, "y":2, "w":1.5},
+ {"x":1.5, "y":2},
+ {"x":2.5, "y":2},
+ {"x":3.5, "y":2},
+ {"x":4.5, "y":2},
+ {"x":5.5, "y":2},
+ {"x":6.75, "y":2},
+
+ {"x":9.25, "y":2},
+ {"x":10.5, "y":2},
+ {"x":11.5, "y":2},
+ {"x":12.5, "y":2},
+ {"x":13.5, "y":2},
+ {"x":14.5, "y":2},
+ {"x":15.5, "y":2, "w":1.5},
+
+ {"x":0, "y":3, "w":1.5},
+ {"x":1.5, "y":3},
+ {"x":2.5, "y":3},
+ {"x":3.5, "y":3},
+ {"x":4.5, "y":3},
+ {"x":5.5, "y":3},
+ {"x":6.75, "y":3},
+
+ {"x":9.25, "y":3},
+ {"x":10.5, "y":3},
+ {"x":11.5, "y":3},
+ {"x":12.5, "y":3},
+ {"x":13.5, "y":3},
+ {"x":14.5, "y":3},
+ {"x":15.5, "y":3, "w":1.5},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4},
+ {"x":3.5, "y":4},
+ {"x":4.5, "y":4},
+ {"x":6, "y":4.5, "h":2},
+ {"x":7, "y":4.5},
+ {"x":7, "y":5.5},
+
+ {"x":9, "y":5.5},
+ {"x":9, "y":4.5},
+ {"x":10, "y":4.5, "h":2},
+ {"x":11.5, "y":4},
+ {"x":12.5, "y":4},
+ {"x":13.5, "y":4},
+ {"x":14.5, "y":4},
+ {"x":15.5, "y":4, "w":1.5},
+
+ {"x":0, "y":7, "w":0.8, "h":0.8},
+ {"x":0.8, "y":7, "w":0.8, "h":0.8},
+ {"x":1.6, "y":7, "w":0.8, "h":0.8},
+ {"x":2.4, "y":7, "w":0.8, "h":0.8},
+ {"x":3.2, "y":7, "w":0.8, "h":0.8},
+ {"x":4, "y":7, "w":0.8, "h":0.8},
+
+ {"x":12.2, "y":7, "w":0.8, "h":0.8},
+ {"x":13, "y":7, "w":0.8, "h":0.8},
+ {"x":13.8, "y":7, "w":0.8, "h":0.8},
+ {"x":14.6, "y":7, "w":0.8, "h":0.8},
+ {"x":15.4, "y":7, "w":0.8, "h":0.8},
+ {"x":16.2, "y":7, "w":0.8, "h":0.8},
+
+ {"x":0, "y":7.8, "w":0.8, "h":0.8},
+ {"x":0.8, "y":7.8, "w":0.8, "h":0.8},
+ {"x":1.6, "y":7.8, "w":0.8, "h":0.8},
+ {"x":2.4, "y":7.8, "w":0.8, "h":0.8},
+ {"x":3.2, "y":7.8, "w":0.8, "h":0.8},
+
+ {"x":13, "y":7.8, "w":0.8, "h":0.8},
+ {"x":13.8, "y":7.8, "w":0.8, "h":0.8},
+ {"x":14.6, "y":7.8, "w":0.8, "h":0.8},
+ {"x":15.4, "y":7.8, "w":0.8, "h":0.8},
+ {"x":16.2, "y":7.8, "w":0.8, "h":0.8}
+ ]
+ }
+ }
+}
From 563c4dbb09fcb3ff76bd453d8780f398e57c2ada Mon Sep 17 00:00:00 2001
From: Danny
Date: Tue, 5 Apr 2022 17:14:07 -0400
Subject: [PATCH 116/221] Add Iris Rev 6.1 (#16722)
---
keyboards/keebio/iris/iris.h | 2 +
keyboards/keebio/iris/rev6a/config.h | 134 +++++++++++++++++++++++++
keyboards/keebio/iris/rev6a/rev6a.c | 141 +++++++++++++++++++++++++++
keyboards/keebio/iris/rev6a/rev6a.h | 42 ++++++++
keyboards/keebio/iris/rev6a/rules.mk | 24 +++++
5 files changed, 343 insertions(+)
create mode 100644 keyboards/keebio/iris/rev6a/config.h
create mode 100644 keyboards/keebio/iris/rev6a/rev6a.c
create mode 100644 keyboards/keebio/iris/rev6a/rev6a.h
create mode 100644 keyboards/keebio/iris/rev6a/rules.mk
diff --git a/keyboards/keebio/iris/iris.h b/keyboards/keebio/iris/iris.h
index db0440a126ed..e17b3b69c649 100644
--- a/keyboards/keebio/iris/iris.h
+++ b/keyboards/keebio/iris/iris.h
@@ -14,6 +14,8 @@
#include "rev5.h"
#elif defined(KEYBOARD_keebio_iris_rev6)
#include "rev6.h"
+#elif defined(KEYBOARD_keebio_iris_rev6a)
+ #include "rev6a.h"
#endif
#include "quantum.h"
diff --git a/keyboards/keebio/iris/rev6a/config.h b/keyboards/keebio/iris/rev6a/config.h
new file mode 100644
index 000000000000..06c1f38e11b6
--- /dev/null
+++ b/keyboards/keebio/iris/rev6a/config.h
@@ -0,0 +1,134 @@
+/*
+Copyright 2021 Danny Nguyen
+
+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 .
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xCB10
+#define PRODUCT_ID 0x6356
+#define DEVICE_VER 0x0610
+#define MANUFACTURER Keebio
+#define PRODUCT Iris Rev. 6.1
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { B1, F0, F5, B4, D7 }
+#define MATRIX_COL_PINS { F1, F4, B5, C7, D4, D6 }
+#define MATRIX_ROW_PINS_RIGHT { B1, F0, F5, B4, B5 }
+#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
+#define SPLIT_HAND_PIN D5
+
+#define ENCODERS_PAD_A { B3 }
+#define ENCODERS_PAD_B { B2 }
+#define ENCODERS_PAD_A_RIGHT { B3 }
+#define ENCODERS_PAD_B_RIGHT { B2 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN E6
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 68
+# define RGBLED_SPLIT { 34, 34 }
+# define RGBLIGHT_HUE_STEP 8
+# define RGBLIGHT_SAT_STEP 8
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_LIMIT_VAL 120 /* The maximum brightness level */
+# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== enabled animations ==*/
+# 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_VAL 120
+# define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
+// RGB Matrix
+//# ifdef RGB_MATRIX_ENABLE
+# define ENABLE_RGB_MATRIX_ALPHAS_MODS
+# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+# define ENABLE_RGB_MATRIX_BREATHING
+# define ENABLE_RGB_MATRIX_BAND_SAT
+# define ENABLE_RGB_MATRIX_BAND_VAL
+# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+# define ENABLE_RGB_MATRIX_CYCLE_ALL
+# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+# define ENABLE_RGB_MATRIX_DUAL_BEACON
+# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
+# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+# define ENABLE_RGB_MATRIX_SPLASH
+# define ENABLE_RGB_MATRIX_MULTISPLASH
+# define ENABLE_RGB_MATRIX_SOLID_SPLASH
+# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
+# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+# define DRIVER_LED_TOTAL RGBLED_NUM
+# define RGB_MATRIX_SPLIT { 34, 34 }
+# define RGB_DISABLE_WHEN_USB_SUSPENDED
+# define RGB_MATRIX_KEYPRESSES
+//# endif
+#endif
+
+#define VIA_QMK_RGBLIGHT_ENABLE
+
+// Enable the workaround for the speed parameter mismatch between RGBLIGHT and
+// RGB Matrix, so that the speed slider in VIA behaves in a more useful way.
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/keebio/iris/rev6a/rev6a.c b/keyboards/keebio/iris/rev6a/rev6a.c
new file mode 100644
index 000000000000..cc9c3f6b8f79
--- /dev/null
+++ b/keyboards/keebio/iris/rev6a/rev6a.c
@@ -0,0 +1,141 @@
+/*
+Copyright 2021 Danny Nguyen
+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 .
+*/
+#include "rev6a.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // Left Half
+ { 0, 1, 2, 3, 4, 5 },
+ { 11, 10, 9, 8, 7, 6 },
+ { 12, 13, 14, 15, 16, 17 },
+ { 23, 22, 21, 20, 19, 18 },
+ { NO_LED, NO_LED, 24, 25, 26, 27 },
+ // Right Half
+ { 34, 35, 36, 37, 38, 39 },
+ { 45, 44, 43, 42, 41, 40 },
+ { 46, 47, 48, 49, 50, 51 },
+ { 57, 56, 55, 54, 53, 52 },
+ { NO_LED, NO_LED, 58, 59, 60, 61 }
+}, {
+ // LED Index to Physical Position
+ // Left Half
+ { 0, 5 }, { 16, 5 }, { 32, 2 }, { 48, 0 }, { 64, 2 }, { 80, 3 },
+ { 80, 17 }, { 64, 15 }, { 48, 13 }, { 32, 15 }, { 16, 18 }, { 0, 18 },
+ { 0, 32 }, { 16, 32 }, { 32, 28 }, { 48, 27 }, { 64, 28 }, { 80, 30 },
+ { 80, 43 }, { 64, 42 }, { 48, 40 }, { 32, 42 }, { 16, 45 }, { 0, 45 },
+ { 56, 47 }, { 72, 58 }, { 90, 64 }, { 98, 52 },
+ { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 },
+ // Right Half
+ { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 },
+ { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 244, 17 },
+ { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 },
+ { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 244, 43 },
+ { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 },
+ { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 }
+}, {
+ // LED Index to Flag
+ // Left Half
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2,
+ // Right Half
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2
+
+} };
+
+
+# if defined(VIA_ENABLE) && defined(VIA_CUSTOM_LIGHTING_ENABLE)
+
+// VIA supports only 4 discrete values for effect speed; map these to some
+// useful speed values for RGB Matrix.
+enum speed_values {
+ RGBLIGHT_SPEED_0 = UINT8_MAX / 16, // not 0 to avoid really slow effects
+ RGBLIGHT_SPEED_1 = UINT8_MAX / 4,
+ RGBLIGHT_SPEED_2 = UINT8_MAX / 2, // matches the default value
+ RGBLIGHT_SPEED_3 = UINT8_MAX / 4 * 3, // UINT8_MAX is really fast
+};
+
+static uint8_t speed_from_rgblight(uint8_t rgblight_speed) {
+ switch (rgblight_speed) {
+ case 0:
+ return RGBLIGHT_SPEED_0;
+ case 1:
+ return RGBLIGHT_SPEED_1;
+ case 2:
+ default:
+ return RGBLIGHT_SPEED_2;
+ case 3:
+ return RGBLIGHT_SPEED_3;
+ }
+}
+
+static uint8_t speed_to_rgblight(uint8_t rgb_matrix_speed) {
+ if (rgb_matrix_speed < ((RGBLIGHT_SPEED_0 + RGBLIGHT_SPEED_1) / 2)) {
+ return 0;
+ } else if (rgb_matrix_speed < ((RGBLIGHT_SPEED_1 + RGBLIGHT_SPEED_2) / 2)) {
+ return 1;
+ } else if (rgb_matrix_speed < ((RGBLIGHT_SPEED_2 + RGBLIGHT_SPEED_3) / 2)) {
+ return 2;
+ } else {
+ return 3;
+ }
+}
+
+void raw_hid_receive_kb(uint8_t *data, uint8_t length) {
+ switch (data[0]) {
+ case id_lighting_get_value:
+ if (data[1] == id_qmk_rgblight_effect_speed) {
+ data[2] = speed_to_rgblight(rgb_matrix_get_speed());
+ }
+ break;
+ case id_lighting_set_value:
+ if (data[1] == id_qmk_rgblight_effect_speed) {
+ rgb_matrix_set_speed_noeeprom(speed_from_rgblight(data[2]));
+ }
+ break;
+ }
+}
+
+# endif // defined(VIA_ENABLE) && defined(VIA_CUSTOM_LIGHTING_ENABLE)
+
+#endif
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ if (index == 0) {
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else if (index == 1) {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ return false;
+}
+#endif
diff --git a/keyboards/keebio/iris/rev6a/rev6a.h b/keyboards/keebio/iris/rev6a/rev6a.h
new file mode 100644
index 000000000000..d13e24410e3b
--- /dev/null
+++ b/keyboards/keebio/iris/rev6a/rev6a.h
@@ -0,0 +1,42 @@
+/*
+Copyright 2021 Danny Nguyen
+
+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 .
+*/
+
+#pragma once
+
+#include "iris.h"
+#include "quantum.h"
+
+
+#define LAYOUT( \
+ LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \
+ LB1, LB2, LB3, LB4, LB5, LB6, RB6, RB5, RB4, RB3, RB2, RB1, \
+ LC1, LC2, LC3, LC4, LC5, LC6, RC6, RC5, RC4, RC3, RC2, RC1, \
+ LD1, LD2, LD3, LD4, LD5, LD6, LE6, RE6, RD6, RD5, RD4, RD3, RD2, RD1, \
+ LE3, LE4, LE5, RE5, RE4, RE3 \
+ ) \
+ { \
+ { LA1, LA2, LA3, LA4, LA5, LA6 }, \
+ { LB1, LB2, LB3, LB4, LB5, LB6 }, \
+ { LC1, LC2, LC3, LC4, LC5, LC6 }, \
+ { LD1, LD2, LD3, LD4, LD5, LD6 }, \
+ { KC_NO, KC_NO, LE3, LE4, LE5, LE6 }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6 }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6 }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6 }, \
+ { RD1, RD2, RD3, RD4, RD5, RD6 }, \
+ { KC_NO, KC_NO, RE3, RE4, RE5, RE6 } \
+ }
diff --git a/keyboards/keebio/iris/rev6a/rules.mk b/keyboards/keebio/iris/rev6a/rules.mk
new file mode 100644
index 000000000000..87f19b5fc1ca
--- /dev/null
+++ b/keyboards/keebio/iris/rev6a/rules.mk
@@ -0,0 +1,24 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+SPLIT_KEYBOARD = yes
+ENCODER_ENABLE = yes
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+
+LTO_ENABLE = yes
From 45504bb0949f4bddd5679bde0076f10512303e3a Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Wed, 6 Apr 2022 01:08:38 +0100
Subject: [PATCH 117/221] Add mechanism to limit available converters (#16783)
---
data/mappings/defaults.json | 9 ++++++---
data/mappings/info_rules.json | 1 +
data/schemas/keyboard.jsonschema | 4 ++++
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/data/mappings/defaults.json b/data/mappings/defaults.json
index d3643fede8e8..3d3d915c0e56 100644
--- a/data/mappings/defaults.json
+++ b/data/mappings/defaults.json
@@ -2,16 +2,19 @@
"development_board": {
"promicro": {
"processor": "atmega32u4",
- "bootloader": "caterina"
+ "bootloader": "caterina",
+ "pin_compatible": "promicro"
},
"elite_c": {
"processor": "atmega32u4",
- "bootloader": "atmel-dfu"
+ "bootloader": "atmel-dfu",
+ "pin_compatible": "promicro"
},
"proton_c": {
"processor": "STM32F303",
"bootloader": "stm32-dfu",
- "board": "QMK_PROTON_C"
+ "board": "QMK_PROTON_C",
+ "pin_compatible": "promicro"
}
}
}
\ No newline at end of file
diff --git a/data/mappings/info_rules.json b/data/mappings/info_rules.json
index f03cadcd44f6..237e9f10246e 100644
--- a/data/mappings/info_rules.json
+++ b/data/mappings/info_rules.json
@@ -19,6 +19,7 @@
"MCU": {"info_key": "processor", "warn_duplicate": false},
"MOUSEKEY_ENABLE": {"info_key": "mouse_key.enabled", "value_type": "bool"},
"NO_USB_STARTUP_CHECK": {"info_key": "usb.no_startup_check", "value_type": "bool"},
+ "PIN_COMPATIBLE": {"info_key": "pin_compatible"},
"SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index f4c24c41cd2c..9af3ef59813f 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -16,6 +16,10 @@
"type": "string",
"enum": ["promicro", "elite_c", "proton_c"]
},
+ "pin_compatible": {
+ "type": "string",
+ "enum": ["promicro"]
+ },
"processor": {
"type": "string",
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
From a5e810b86cff89faa082c3ff71b69cda0709ab79 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Wed, 6 Apr 2022 01:23:04 +0100
Subject: [PATCH 118/221] Add non blackpill F4x1 config files (#16600)
* Add non blackpill F4x1 config files
* Move ld files
* Remove f401 i2c bodges
* more bodge?
* Update to recommended defaults
---
.../onekey/blackpill_f401/blackpill_f401.c | 23 --
keyboards/handwired/uthol/rev3/rev3.c | 2 -
keyboards/mechwild/obe/obe.c | 6 -
keyboards/mechwild/waka60/waka60.c | 6 +-
keyboards/mode/m65ha_alpha/m65ha_alpha.c | 1 -
keyboards/mode/m65hi_alpha/m65hi_alpha.c | 1 -
keyboards/mode/m65s/m65s.c | 1 -
keyboards/mode/m75h/m75h.c | 1 -
keyboards/mode/m75s/m75s.c | 1 -
.../BLACKPILL_STM32_F401/configs/board.h | 57 ++++
.../GENERIC_STM32_F401XC/board/board.mk | 9 +
.../GENERIC_STM32_F401XC/configs/board.h | 77 ++++++
.../GENERIC_STM32_F401XC/configs/config.h | 22 ++
.../GENERIC_STM32_F401XC/configs/mcuconf.h | 244 +++++++++++++++++
.../GENERIC_STM32_F411XE/board/board.mk | 9 +
.../GENERIC_STM32_F411XE/configs/board.h | 20 ++
.../GENERIC_STM32_F411XE/configs/config.h | 22 ++
.../GENERIC_STM32_F411XE/configs/mcuconf.h | 252 ++++++++++++++++++
.../ld/STM32F401xC_tinyuf2.ld | 0
.../ld/STM32F401xE_tinyuf2.ld | 0
.../ld/STM32F411xC_tinyuf2.ld | 0
.../ld/STM32F411xE_tinyuf2.ld | 0
22 files changed, 713 insertions(+), 41 deletions(-)
delete mode 100644 keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F401XC/board/board.mk
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F401XC/configs/config.h
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F411XE/board/board.mk
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F411XE/configs/config.h
create mode 100644 platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h
rename platforms/chibios/boards/{BLACKPILL_STM32_F401 => common}/ld/STM32F401xC_tinyuf2.ld (100%)
rename platforms/chibios/boards/{BLACKPILL_STM32_F401 => common}/ld/STM32F401xE_tinyuf2.ld (100%)
rename platforms/chibios/boards/{BLACKPILL_STM32_F411 => common}/ld/STM32F411xC_tinyuf2.ld (100%)
rename platforms/chibios/boards/{BLACKPILL_STM32_F411 => common}/ld/STM32F411xE_tinyuf2.ld (100%)
diff --git a/keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c b/keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c
deleted file mode 100644
index 1287614a8b9e..000000000000
--- a/keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2020 Sergey Vlasov (sigprof)
- *
- * 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 .
- */
-
-#include QMK_KEYBOARD_H
-
-void board_init(void) {
- // B9 is configured as I2C1_SDA_PIN in the board file; that function must be
- // disabled before using B7 as I2C1_SDA.
- setPinInputHigh(B9);
-}
diff --git a/keyboards/handwired/uthol/rev3/rev3.c b/keyboards/handwired/uthol/rev3/rev3.c
index 2ababdfbe86e..6c06387ee88e 100644
--- a/keyboards/handwired/uthol/rev3/rev3.c
+++ b/keyboards/handwired/uthol/rev3/rev3.c
@@ -16,5 +16,3 @@
*/
#include QMK_KEYBOARD_H
-
-void board_init(void) { setPinInputHigh(B9); }
diff --git a/keyboards/mechwild/obe/obe.c b/keyboards/mechwild/obe/obe.c
index 8612764ae5a1..195d4a76790d 100644
--- a/keyboards/mechwild/obe/obe.c
+++ b/keyboards/mechwild/obe/obe.c
@@ -16,12 +16,6 @@
#include "obe.h"
-void board_init(void) {
- // B9 is configured as I2C1_SDA in the board file; that function must be
- // disabled before using B7 as I2C1_SDA.
- setPinInputHigh(B9);
-}
-
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/mechwild/waka60/waka60.c b/keyboards/mechwild/waka60/waka60.c
index 1b6eec1f4421..180d0a67865d 100644
--- a/keyboards/mechwild/waka60/waka60.c
+++ b/keyboards/mechwild/waka60/waka60.c
@@ -15,11 +15,7 @@
*/
#include "waka60.h"
-void board_init(void) {
- // B9 is configured as I2C1_SDA in the board file; that function must be
- // disabled before using B7 as I2C1_SDA.
- setPinInputHigh(B9);
-}
+
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/mode/m65ha_alpha/m65ha_alpha.c b/keyboards/mode/m65ha_alpha/m65ha_alpha.c
index 93e0c06b73fc..4160ffed95fe 100644
--- a/keyboards/mode/m65ha_alpha/m65ha_alpha.c
+++ b/keyboards/mode/m65ha_alpha/m65ha_alpha.c
@@ -18,7 +18,6 @@ along with this program. If not, see .
#include "m65ha_alpha.h"
void board_init(void) {
- setPinInput(B9);
setPinInput(B10);
}
diff --git a/keyboards/mode/m65hi_alpha/m65hi_alpha.c b/keyboards/mode/m65hi_alpha/m65hi_alpha.c
index db0ab7ca9aee..42c88ba354f8 100644
--- a/keyboards/mode/m65hi_alpha/m65hi_alpha.c
+++ b/keyboards/mode/m65hi_alpha/m65hi_alpha.c
@@ -18,7 +18,6 @@ along with this program. If not, see .
#include "m65hi_alpha.h"
void board_init(void) {
- setPinInput(B9);
setPinInput(B10);
}
diff --git a/keyboards/mode/m65s/m65s.c b/keyboards/mode/m65s/m65s.c
index 298fc9414036..467fc53a0eb1 100644
--- a/keyboards/mode/m65s/m65s.c
+++ b/keyboards/mode/m65s/m65s.c
@@ -18,7 +18,6 @@ along with this program. If not, see .
#include "m65s.h"
void board_init(void) {
- setPinInput(B9);
setPinInput(B10);
}
diff --git a/keyboards/mode/m75h/m75h.c b/keyboards/mode/m75h/m75h.c
index 3306a6538b99..e480ea283464 100644
--- a/keyboards/mode/m75h/m75h.c
+++ b/keyboards/mode/m75h/m75h.c
@@ -18,6 +18,5 @@ along with this program. If not, see .
#include "m75h.h"
void board_init(void) {
- setPinInput(B9);
setPinInput(B10);
}
diff --git a/keyboards/mode/m75s/m75s.c b/keyboards/mode/m75s/m75s.c
index e0424a6a64b7..bd323a435beb 100644
--- a/keyboards/mode/m75s/m75s.c
+++ b/keyboards/mode/m75s/m75s.c
@@ -18,6 +18,5 @@ along with this program. If not, see .
#include "m75s.h"
void board_init(void) {
- setPinInput(B9);
setPinInput(B10);
}
diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h
index 30af6b0c8608..78dcbac05c89 100644
--- a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h
+++ b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/board.h
@@ -17,4 +17,61 @@
#include_next "board.h"
+// Force B9 as input to align with qmk defaults
+#undef VAL_GPIOB_MODER
+#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
+ PIN_MODE_INPUT(GPIOB_PIN1) | \
+ PIN_MODE_INPUT(GPIOB_PIN2) | \
+ PIN_MODE_ALTERNATE(GPIOB_SWO) | \
+ PIN_MODE_INPUT(GPIOB_PIN4) | \
+ PIN_MODE_INPUT(GPIOB_PIN5) | \
+ PIN_MODE_INPUT(GPIOB_LSM303DLHC_SCL) | \
+ PIN_MODE_INPUT(GPIOB_PIN7) | \
+ PIN_MODE_INPUT(GPIOB_PIN8) | \
+ PIN_MODE_INPUT(GPIOB_LSM303DLHC_SDA) | \
+ PIN_MODE_ALTERNATE(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_MODE_INPUT(GPIOB_PIN11) | \
+ PIN_MODE_INPUT(GPIOB_PIN12) | \
+ PIN_MODE_INPUT(GPIOB_PIN13) | \
+ PIN_MODE_INPUT(GPIOB_PIN14) | \
+ PIN_MODE_INPUT(GPIOB_PIN15))
+
+#undef VAL_GPIOB_PUPDR
+#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOB_SWO) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOB_LSM303DLHC_SCL) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOB_LSM303DLHC_SDA) |\
+ PIN_PUPDR_FLOATING(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN15))
+
+#undef VAL_GPIOB_AFRL
+#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOB_SWO, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOB_LSM303DLHC_SCL, 0) | \
+ PIN_AFIO_AF(GPIOB_PIN7, 0U))
+
+#undef VAL_GPIOB_AFRH
+#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOB_LSM303DLHC_SDA, 0) | \
+ PIN_AFIO_AF(GPIOB_MP45DT02_CLK_IN, 5U) |\
+ PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN15, 0U))
+
#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_F401XC/board/board.mk
new file mode 100644
index 000000000000..fddf7dace499
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/board/board.mk
@@ -0,0 +1,9 @@
+# List of all the board related files.
+BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_STM32F401C_DISCOVERY/board.c
+
+# Required include directories
+BOARDINC = $(CHIBIOS)/os/hal/boards/ST_STM32F401C_DISCOVERY
+
+# Shared variables
+ALLCSRC += $(BOARDSRC)
+ALLINC += $(BOARDINC)
diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h
new file mode 100644
index 000000000000..78dcbac05c89
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/board.h
@@ -0,0 +1,77 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * 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 3 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 .
+ */
+#pragma once
+
+#include_next "board.h"
+
+// Force B9 as input to align with qmk defaults
+#undef VAL_GPIOB_MODER
+#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
+ PIN_MODE_INPUT(GPIOB_PIN1) | \
+ PIN_MODE_INPUT(GPIOB_PIN2) | \
+ PIN_MODE_ALTERNATE(GPIOB_SWO) | \
+ PIN_MODE_INPUT(GPIOB_PIN4) | \
+ PIN_MODE_INPUT(GPIOB_PIN5) | \
+ PIN_MODE_INPUT(GPIOB_LSM303DLHC_SCL) | \
+ PIN_MODE_INPUT(GPIOB_PIN7) | \
+ PIN_MODE_INPUT(GPIOB_PIN8) | \
+ PIN_MODE_INPUT(GPIOB_LSM303DLHC_SDA) | \
+ PIN_MODE_ALTERNATE(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_MODE_INPUT(GPIOB_PIN11) | \
+ PIN_MODE_INPUT(GPIOB_PIN12) | \
+ PIN_MODE_INPUT(GPIOB_PIN13) | \
+ PIN_MODE_INPUT(GPIOB_PIN14) | \
+ PIN_MODE_INPUT(GPIOB_PIN15))
+
+#undef VAL_GPIOB_PUPDR
+#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
+ PIN_PUPDR_PULLUP(GPIOB_SWO) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
+ PIN_PUPDR_PULLUP(GPIOB_LSM303DLHC_SCL) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
+ PIN_PUPDR_PULLUP(GPIOB_LSM303DLHC_SDA) |\
+ PIN_PUPDR_FLOATING(GPIOB_MP45DT02_CLK_IN) |\
+ PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN13) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN14) | \
+ PIN_PUPDR_PULLUP(GPIOB_PIN15))
+
+#undef VAL_GPIOB_AFRL
+#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
+ PIN_AFIO_AF(GPIOB_SWO, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
+ PIN_AFIO_AF(GPIOB_LSM303DLHC_SCL, 0) | \
+ PIN_AFIO_AF(GPIOB_PIN7, 0U))
+
+#undef VAL_GPIOB_AFRH
+#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
+ PIN_AFIO_AF(GPIOB_LSM303DLHC_SDA, 0) | \
+ PIN_AFIO_AF(GPIOB_MP45DT02_CLK_IN, 5U) |\
+ PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN13, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN14, 0U) | \
+ PIN_AFIO_AF(GPIOB_PIN15, 0U))
+
+#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/config.h
new file mode 100644
index 000000000000..e06ca0b7250e
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/config.h
@@ -0,0 +1,22 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * 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 3 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 .
+ */
+#pragma once
+
+#define BOARD_OTG_NOVBUSSENS 1
+
+#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
+# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#endif
diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h
new file mode 100644
index 000000000000..24cec7137d66
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h
@@ -0,0 +1,244 @@
+/*
+ ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef MCUCONF_H
+#define MCUCONF_H
+
+/*
+ * STM32F4xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F4xx_MCUCONF
+#define STM32F401_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_BKPRAM_ENABLE FALSE
+#define STM32_HSI_ENABLED TRUE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED TRUE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_CLOCK48_REQUIRED TRUE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSE
+#define STM32_PLLM_VALUE 4
+#define STM32_PLLN_VALUE 168
+#define STM32_PLLP_VALUE 4
+#define STM32_PLLQ_VALUE 7
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE1 STM32_PPRE1_DIV2
+#define STM32_PPRE2 STM32_PPRE2_DIV1
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+#define STM32_RTCPRE_VALUE 8
+#define STM32_MCO1SEL STM32_MCO1SEL_HSI
+#define STM32_MCO1PRE STM32_MCO1PRE_DIV1
+#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
+#define STM32_MCO2PRE STM32_MCO2PRE_DIV5
+#define STM32_I2SSRC STM32_I2SSRC_CKIN
+#define STM32_PLLI2SN_VALUE 192
+#define STM32_PLLI2SR_VALUE 5
+
+/*
+ * IRQ system settings.
+ */
+#define STM32_IRQ_EXTI0_PRIORITY 6
+#define STM32_IRQ_EXTI1_PRIORITY 6
+#define STM32_IRQ_EXTI2_PRIORITY 6
+#define STM32_IRQ_EXTI3_PRIORITY 6
+#define STM32_IRQ_EXTI4_PRIORITY 6
+#define STM32_IRQ_EXTI5_9_PRIORITY 6
+#define STM32_IRQ_EXTI10_15_PRIORITY 6
+#define STM32_IRQ_EXTI16_PRIORITY 6
+#define STM32_IRQ_EXTI17_PRIORITY 15
+#define STM32_IRQ_EXTI18_PRIORITY 6
+#define STM32_IRQ_EXTI19_PRIORITY 6
+#define STM32_IRQ_EXTI20_PRIORITY 6
+#define STM32_IRQ_EXTI21_PRIORITY 15
+#define STM32_IRQ_EXTI22_PRIORITY 15
+
+#define STM32_IRQ_TIM1_BRK_TIM9_PRIORITY 7
+#define STM32_IRQ_TIM1_UP_TIM10_PRIORITY 7
+#define STM32_IRQ_TIM1_TRGCO_TIM11_PRIORITY 7
+#define STM32_IRQ_TIM1_CC_PRIORITY 7
+#define STM32_IRQ_TIM2_PRIORITY 7
+#define STM32_IRQ_TIM3_PRIORITY 7
+#define STM32_IRQ_TIM4_PRIORITY 7
+#define STM32_IRQ_TIM5_PRIORITY 7
+
+#define STM32_IRQ_USART1_PRIORITY 12
+#define STM32_IRQ_USART2_PRIORITY 12
+#define STM32_IRQ_USART6_PRIORITY 12
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_IRQ_PRIORITY 6
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM4 FALSE
+#define STM32_GPT_USE_TIM5 FALSE
+#define STM32_GPT_USE_TIM9 FALSE
+#define STM32_GPT_USE_TIM10 FALSE
+#define STM32_GPT_USE_TIM11 FALSE
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_USE_I2C3 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
+#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
+#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_I2C_I2C1_IRQ_PRIORITY 5
+#define STM32_I2C_I2C2_IRQ_PRIORITY 5
+#define STM32_I2C_I2C3_IRQ_PRIORITY 5
+#define STM32_I2C_I2C1_DMA_PRIORITY 3
+#define STM32_I2C_I2C2_DMA_PRIORITY 3
+#define STM32_I2C_I2C3_DMA_PRIORITY 3
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * I2S driver system settings.
+ */
+#define STM32_I2S_USE_SPI2 FALSE
+#define STM32_I2S_USE_SPI3 FALSE
+#define STM32_I2S_SPI2_IRQ_PRIORITY 10
+#define STM32_I2S_SPI3_IRQ_PRIORITY 10
+#define STM32_I2S_SPI2_DMA_PRIORITY 1
+#define STM32_I2S_SPI3_DMA_PRIORITY 1
+#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
+#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_USE_TIM4 FALSE
+#define STM32_ICU_USE_TIM5 FALSE
+#define STM32_ICU_USE_TIM9 FALSE
+#define STM32_ICU_USE_TIM10 FALSE
+#define STM32_ICU_USE_TIM11 FALSE
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_USE_TIM4 FALSE
+#define STM32_PWM_USE_TIM5 FALSE
+#define STM32_PWM_USE_TIM9 FALSE
+#define STM32_PWM_USE_TIM10 FALSE
+#define STM32_PWM_USE_TIM11 FALSE
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USE_USART6 FALSE
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_USE_SPI3 FALSE
+#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
+#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
+#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
+#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI3_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 10
+#define STM32_SPI_SPI2_IRQ_PRIORITY 10
+#define STM32_SPI_SPI3_IRQ_PRIORITY 10
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 8
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USE_USART6 FALSE
+#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
+#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
+#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
+#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
+#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_USART6_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_OTG1 TRUE
+#define STM32_USB_OTG1_IRQ_PRIORITY 14
+#define STM32_USB_OTG1_RX_FIFO_SIZE 512
+#define STM32_USB_HOST_WAKEUP_DURATION 2
+
+/*
+ * WDG driver system settings.
+ */
+#define STM32_WDG_USE_IWDG FALSE
+
+#endif /* MCUCONF_H */
diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_F411XE/board/board.mk
new file mode 100644
index 000000000000..bb00b1a2b0dc
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/board/board.mk
@@ -0,0 +1,9 @@
+# List of all the board related files.
+BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F411RE/board.c
+
+# Required include directories
+BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F411RE
+
+# Shared variables
+ALLCSRC += $(BOARDSRC)
+ALLINC += $(BOARDINC)
diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h
new file mode 100644
index 000000000000..30af6b0c8608
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/board.h
@@ -0,0 +1,20 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * 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 3 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 .
+ */
+#pragma once
+
+#include_next "board.h"
+
+#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/config.h
new file mode 100644
index 000000000000..e06ca0b7250e
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/config.h
@@ -0,0 +1,22 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * 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 3 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 .
+ */
+#pragma once
+
+#define BOARD_OTG_NOVBUSSENS 1
+
+#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
+# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#endif
diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h
new file mode 100644
index 000000000000..e1d45ca4877b
--- /dev/null
+++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h
@@ -0,0 +1,252 @@
+/*
+ ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef MCUCONF_H
+#define MCUCONF_H
+
+/*
+ * STM32F4xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F4xx_MCUCONF
+#define STM32F411_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_BKPRAM_ENABLE FALSE
+#define STM32_HSI_ENABLED TRUE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED TRUE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_CLOCK48_REQUIRED TRUE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSE
+#define STM32_PLLM_VALUE 4
+#define STM32_PLLN_VALUE 96
+#define STM32_PLLP_VALUE 2
+#define STM32_PLLQ_VALUE 4
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE1 STM32_PPRE1_DIV2
+#define STM32_PPRE2 STM32_PPRE2_DIV1
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+#define STM32_RTCPRE_VALUE 8
+#define STM32_MCO1SEL STM32_MCO1SEL_HSI
+#define STM32_MCO1PRE STM32_MCO1PRE_DIV1
+#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
+#define STM32_MCO2PRE STM32_MCO2PRE_DIV5
+#define STM32_I2SSRC STM32_I2SSRC_CKIN
+#define STM32_PLLI2SN_VALUE 192
+#define STM32_PLLI2SR_VALUE 5
+
+/*
+ * IRQ system settings.
+ */
+#define STM32_IRQ_EXTI0_PRIORITY 6
+#define STM32_IRQ_EXTI1_PRIORITY 6
+#define STM32_IRQ_EXTI2_PRIORITY 6
+#define STM32_IRQ_EXTI3_PRIORITY 6
+#define STM32_IRQ_EXTI4_PRIORITY 6
+#define STM32_IRQ_EXTI5_9_PRIORITY 6
+#define STM32_IRQ_EXTI10_15_PRIORITY 6
+#define STM32_IRQ_EXTI16_PRIORITY 6
+#define STM32_IRQ_EXTI17_PRIORITY 15
+#define STM32_IRQ_EXTI18_PRIORITY 6
+#define STM32_IRQ_EXTI19_PRIORITY 6
+#define STM32_IRQ_EXTI20_PRIORITY 6
+#define STM32_IRQ_EXTI21_PRIORITY 15
+#define STM32_IRQ_EXTI22_PRIORITY 15
+
+#define STM32_IRQ_TIM1_BRK_TIM9_PRIORITY 7
+#define STM32_IRQ_TIM1_UP_TIM10_PRIORITY 7
+#define STM32_IRQ_TIM1_TRGCO_TIM11_PRIORITY 7
+#define STM32_IRQ_TIM1_CC_PRIORITY 7
+#define STM32_IRQ_TIM2_PRIORITY 7
+#define STM32_IRQ_TIM3_PRIORITY 7
+#define STM32_IRQ_TIM4_PRIORITY 7
+#define STM32_IRQ_TIM5_PRIORITY 7
+
+#define STM32_IRQ_USART1_PRIORITY 12
+#define STM32_IRQ_USART2_PRIORITY 12
+#define STM32_IRQ_USART6_PRIORITY 12
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_IRQ_PRIORITY 6
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM4 FALSE
+#define STM32_GPT_USE_TIM5 FALSE
+#define STM32_GPT_USE_TIM9 FALSE
+#define STM32_GPT_USE_TIM10 FALSE
+#define STM32_GPT_USE_TIM11 FALSE
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_USE_I2C3 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
+#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
+#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_I2C_I2C1_IRQ_PRIORITY 5
+#define STM32_I2C_I2C2_IRQ_PRIORITY 5
+#define STM32_I2C_I2C3_IRQ_PRIORITY 5
+#define STM32_I2C_I2C1_DMA_PRIORITY 3
+#define STM32_I2C_I2C2_DMA_PRIORITY 3
+#define STM32_I2C_I2C3_DMA_PRIORITY 3
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * I2S driver system settings.
+ */
+#define STM32_I2S_USE_SPI2 FALSE
+#define STM32_I2S_USE_SPI3 FALSE
+#define STM32_I2S_SPI2_IRQ_PRIORITY 10
+#define STM32_I2S_SPI3_IRQ_PRIORITY 10
+#define STM32_I2S_SPI2_DMA_PRIORITY 1
+#define STM32_I2S_SPI3_DMA_PRIORITY 1
+#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
+#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_USE_TIM4 FALSE
+#define STM32_ICU_USE_TIM5 FALSE
+#define STM32_ICU_USE_TIM9 FALSE
+#define STM32_ICU_USE_TIM10 FALSE
+#define STM32_ICU_USE_TIM11 FALSE
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_USE_TIM4 FALSE
+#define STM32_PWM_USE_TIM5 FALSE
+#define STM32_PWM_USE_TIM9 FALSE
+#define STM32_PWM_USE_TIM10 FALSE
+#define STM32_PWM_USE_TIM11 FALSE
+
+/*
+ * RTC driver system settings.
+ */
+#define STM32_RTC_PRESA_VALUE 32
+#define STM32_RTC_PRESS_VALUE 1024
+#define STM32_RTC_CR_INIT 0
+#define STM32_RTC_TAMPCR_INIT 0
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USE_USART6 FALSE
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_USE_SPI3 FALSE
+#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
+#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
+#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
+#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
+#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI3_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 10
+#define STM32_SPI_SPI2_IRQ_PRIORITY 10
+#define STM32_SPI_SPI3_IRQ_PRIORITY 10
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 8
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USE_USART6 FALSE
+#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
+#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
+#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
+#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
+#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_USART6_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_OTG1 TRUE
+#define STM32_USB_OTG1_IRQ_PRIORITY 14
+#define STM32_USB_OTG1_RX_FIFO_SIZE 512
+#define STM32_USB_HOST_WAKEUP_DURATION 2
+
+/*
+ * WDG driver system settings.
+ */
+#define STM32_WDG_USE_IWDG FALSE
+
+#endif /* MCUCONF_H */
diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/ld/STM32F401xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld
similarity index 100%
rename from platforms/chibios/boards/BLACKPILL_STM32_F401/ld/STM32F401xC_tinyuf2.ld
rename to platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld
diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/ld/STM32F401xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld
similarity index 100%
rename from platforms/chibios/boards/BLACKPILL_STM32_F401/ld/STM32F401xE_tinyuf2.ld
rename to platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld
diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F411/ld/STM32F411xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld
similarity index 100%
rename from platforms/chibios/boards/BLACKPILL_STM32_F411/ld/STM32F411xC_tinyuf2.ld
rename to platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld
diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F411/ld/STM32F411xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld
similarity index 100%
rename from platforms/chibios/boards/BLACKPILL_STM32_F411/ld/STM32F411xE_tinyuf2.ld
rename to platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld
From d508988916cb47dcdeedd0167a48ab99ca202417 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Wed, 6 Apr 2022 03:06:27 -0700
Subject: [PATCH 119/221] QK65 Hotswap Community Layout Support (#16793)
* qk65 hotswap: Community Layout support
- renames `LAYOUT_hotswap` to `LAYOUT_65_ansi_blocker`
- adds Community Layouts rule to `rules.mk`
* refactor keymaps
Edits the keymaps to align the keycodes in a grid. Whitespace-only change.
---
keyboards/qwertykeys/qk65/hotswap/hotswap.h | 2 +-
keyboards/qwertykeys/qk65/hotswap/info.json | 7 +-
.../qk65/hotswap/keymaps/default/keymap.c | 68 +++++++++----------
.../qk65/hotswap/keymaps/via/keymap.c | 68 +++++++++----------
keyboards/qwertykeys/qk65/hotswap/rules.mk | 4 +-
5 files changed, 77 insertions(+), 72 deletions(-)
diff --git a/keyboards/qwertykeys/qk65/hotswap/hotswap.h b/keyboards/qwertykeys/qk65/hotswap/hotswap.h
index 334ce82277a6..daa7ffd5f3d8 100644
--- a/keyboards/qwertykeys/qk65/hotswap/hotswap.h
+++ b/keyboards/qwertykeys/qk65/hotswap/hotswap.h
@@ -18,7 +18,7 @@ along with this program. If not, see .
#pragma once
#include "quantum.h"
-#define LAYOUT_hotswap( \
+#define LAYOUT_65_ansi_blocker( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \
diff --git a/keyboards/qwertykeys/qk65/hotswap/info.json b/keyboards/qwertykeys/qk65/hotswap/info.json
index 2848a3f5e819..21d30bd49112 100644
--- a/keyboards/qwertykeys/qk65/hotswap/info.json
+++ b/keyboards/qwertykeys/qk65/hotswap/info.json
@@ -2,8 +2,11 @@
"keyboard_name": "qk65",
"url": "",
"maintainer": "qwertykeys",
+ "layout_aliases": {
+ "LAYOUT_hotswap": "LAYOUT_65_ansi_blocker"
+ },
"layouts": {
- "LAYOUT_hotswap": {
+ "LAYOUT_65_ansi_blocker": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
@@ -75,4 +78,4 @@
]
}
}
-}
\ No newline at end of file
+}
diff --git a/keyboards/qwertykeys/qk65/hotswap/keymaps/default/keymap.c b/keyboards/qwertykeys/qk65/hotswap/keymaps/default/keymap.c
index 4c9960f29eb1..86799d7617b9 100644
--- a/keyboards/qwertykeys/qk65/hotswap/keymaps/default/keymap.c
+++ b/keyboards/qwertykeys/qk65/hotswap/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/*
+/*
Copyright 2022 qwertykeys
This program is free software: you can redistribute it and/or modify
@@ -19,36 +19,36 @@ along with this program. If not, see .
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_hotswap(
- 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_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_ENT, KC_PGDN,
- 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, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_hotswap(
- 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_TRNS, RESET,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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
- ),
-
- [3] = LAYOUT_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
- )
-
-};
\ No newline at end of file
+ [0] = LAYOUT_65_ansi_blocker(
+ 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_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_ENT, KC_PGDN,
+ 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, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_65_ansi_blocker(
+ 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_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
diff --git a/keyboards/qwertykeys/qk65/hotswap/keymaps/via/keymap.c b/keyboards/qwertykeys/qk65/hotswap/keymaps/via/keymap.c
index ca81553007b3..67f5d3890878 100644
--- a/keyboards/qwertykeys/qk65/hotswap/keymaps/via/keymap.c
+++ b/keyboards/qwertykeys/qk65/hotswap/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/*
+/*
Copyright 2022 qwertykeys
This program is free software: you can redistribute it and/or modify
@@ -19,36 +19,36 @@ along with this program. If not, see .
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_hotswap(
- 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_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_ENT, KC_PGDN,
- 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, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_hotswap(
- 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_TRNS, RESET,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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
- ),
-
- [3] = LAYOUT_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
- )
-
-};
\ No newline at end of file
+ [0] = LAYOUT_65_ansi_blocker(
+ 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_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_ENT, KC_PGDN,
+ 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, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_65_ansi_blocker(
+ 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_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_ansi_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
diff --git a/keyboards/qwertykeys/qk65/hotswap/rules.mk b/keyboards/qwertykeys/qk65/hotswap/rules.mk
index f9417ae2bf7c..22b16cb763a7 100644
--- a/keyboards/qwertykeys/qk65/hotswap/rules.mk
+++ b/keyboards/qwertykeys/qk65/hotswap/rules.mk
@@ -15,4 +15,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
\ No newline at end of file
+AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = 65_ansi_blocker
From 4a729a7be5ac52e1997d02f74e7173256ed03b93 Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Wed, 6 Apr 2022 03:13:05 -0700
Subject: [PATCH 120/221] QK65 Solder Community Layout Support (#16796)
* refactor solder.h
- use QMK 3-character notation
- convert tabs to spaces
* solder.h: add matrix diagram
* rename LAYOUT_solder to LAYOUT_all
* rename LAYOUT_iso to LAYOUT_65_iso_blocker
Also adds Community Layouts rule to `rules.mk`.
* info.json: improve formatting
- convert tabs to spaces
- format file to four-space indent
* refactor keymaps
- convert tabs to spaces
- update grid alignment of keycodes
- remove trailing whitespace
* add LAYOUT_65_ansi_blocker
* add LAYOUT_65_ansi_blocker_split_bs
* add LAYOUT_65_iso_blocker_split_bs
* add LAYOUT_65_ansi_blocker_tsangan
* add LAYOUT_65_iso_blocker_tsangan
* add LAYOUT_65_ansi_blocker_tsangan_split_bs
* add LAYOUT_65_iso_blocker_tsangan_split_bs
* remove 65_ansi_blocker_tsangan_split_bs from `LAYOUTS` rule
---
keyboards/qwertykeys/qk65/solder/info.json | 552 +++++++++++++++++-
.../qk65/solder/keymaps/default/keymap.c | 65 ++-
.../qk65/solder/keymaps/via/keymap.c | 65 ++-
keyboards/qwertykeys/qk65/solder/rules.mk | 4 +-
keyboards/qwertykeys/qk65/solder/solder.h | 161 ++++-
5 files changed, 753 insertions(+), 94 deletions(-)
diff --git a/keyboards/qwertykeys/qk65/solder/info.json b/keyboards/qwertykeys/qk65/solder/info.json
index 22518136235d..53c5179f4287 100644
--- a/keyboards/qwertykeys/qk65/solder/info.json
+++ b/keyboards/qwertykeys/qk65/solder/info.json
@@ -2,8 +2,12 @@
"keyboard_name": "qk65",
"url": "",
"maintainer": "qwertykeys",
+ "layout_aliases": {
+ "LAYOUT_solder": "LAYOUT_all",
+ "LAYOUT_iso": "LAYOUT_65_iso_blocker"
+ },
"layouts": {
- "LAYOUT_solder": {
+ "LAYOUT_all": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
@@ -21,6 +25,7 @@
{"x":13, "y":0},
{"x":14, "y":0},
{"x":15, "y":0},
+
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
@@ -36,6 +41,7 @@
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":15, "y":1},
+
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
@@ -50,6 +56,7 @@
{"x":11.75, "y":2},
{"x":12.75, "y":2, "w":2.25},
{"x":15, "y":2},
+
{"x":0, "y":3, "w":1.25},
{"x":1.25, "y":3},
{"x":2.25, "y":3},
@@ -65,6 +72,7 @@
{"x":12.25, "y":3, "w":1.75},
{"x":14, "y":3},
{"x":15, "y":3},
+
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4, "w":1.25},
{"x":2.5, "y":4, "w":1.25},
@@ -72,11 +80,11 @@
{"x":10, "y":4, "w":1.25},
{"x":11.25, "y":4, "w":1.25},
{"x":13, "y":4},
- {"x":14, "y":4},
+ {"x":14, "y":4},
{"x":15, "y":4}
]
},
- "LAYOUT_iso": {
+ "LAYOUT_65_ansi_blocker": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
@@ -93,6 +101,384 @@
{"x":12, "y":0},
{"x":13, "y":0, "w":2},
{"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_tsangan_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":13.5, "y":1, "w":1.5},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2, "w":2.25},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":2.25},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.25},
+ {"x":1.25, "y":4, "w":1.25},
+ {"x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"x":10, "y":4, "w":1.25},
+ {"x":11.25, "y":4, "w":1.25},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
@@ -107,6 +493,7 @@
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":15, "y":1},
+
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
@@ -122,6 +509,7 @@
{"x":12.75, "y":2},
{"x":13.75, "y":1, "w":1.25, "h":2},
{"x":15, "y":2},
+
{"x":0, "y":3, "w":1.25},
{"x":1.25, "y":3},
{"x":2.25, "y":3},
@@ -137,6 +525,7 @@
{"x":12.25, "y":3, "w":1.75},
{"x":14, "y":3},
{"x":15, "y":3},
+
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4, "w":1.25},
{"x":2.5, "y":4, "w":1.25},
@@ -144,9 +533,160 @@
{"x":10, "y":4, "w":1.25},
{"x":11.25, "y":4, "w":1.25},
{"x":13, "y":4},
- {"x":14, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_tsangan": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0, "w":2},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
+ {"x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_tsangan_split_bs": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6, "y":0},
+ {"x":7, "y":0},
+ {"x":8, "y":0},
+ {"x":9, "y":0},
+ {"x":10, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15, "y":0},
+
+ {"x":0, "y":1, "w":1.5},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":3.5, "y":1},
+ {"x":4.5, "y":1},
+ {"x":5.5, "y":1},
+ {"x":6.5, "y":1},
+ {"x":7.5, "y":1},
+ {"x":8.5, "y":1},
+ {"x":9.5, "y":1},
+ {"x":10.5, "y":1},
+ {"x":11.5, "y":1},
+ {"x":12.5, "y":1},
+ {"x":15, "y":1},
+
+ {"x":0, "y":2, "w":1.75},
+ {"x":1.75, "y":2},
+ {"x":2.75, "y":2},
+ {"x":3.75, "y":2},
+ {"x":4.75, "y":2},
+ {"x":5.75, "y":2},
+ {"x":6.75, "y":2},
+ {"x":7.75, "y":2},
+ {"x":8.75, "y":2},
+ {"x":9.75, "y":2},
+ {"x":10.75, "y":2},
+ {"x":11.75, "y":2},
+ {"x":12.75, "y":2},
+ {"x":13.75, "y":1, "w":1.25, "h":2},
+ {"x":15, "y":2},
+
+ {"x":0, "y":3, "w":1.25},
+ {"x":1.25, "y":3},
+ {"x":2.25, "y":3},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3},
+ {"x":5.25, "y":3},
+ {"x":6.25, "y":3},
+ {"x":7.25, "y":3},
+ {"x":8.25, "y":3},
+ {"x":9.25, "y":3},
+ {"x":10.25, "y":3},
+ {"x":11.25, "y":3},
+ {"x":12.25, "y":3, "w":1.75},
+ {"x":14, "y":3},
+ {"x":15, "y":3},
+
+ {"x":0, "y":4, "w":1.5},
+ {"x":1.5, "y":4},
+ {"x":2.5, "y":4, "w":1.5},
+ {"x":4, "y":4, "w":7},
+ {"x":11, "y":4, "w":1.5},
+ {"x":13, "y":4},
+ {"x":14, "y":4},
{"x":15, "y":4}
]
- }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/keyboards/qwertykeys/qk65/solder/keymaps/default/keymap.c b/keyboards/qwertykeys/qk65/solder/keymaps/default/keymap.c
index 8d52b17d2a29..ea9b36136f19 100644
--- a/keyboards/qwertykeys/qk65/solder/keymaps/default/keymap.c
+++ b/keyboards/qwertykeys/qk65/solder/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/*
+/*
Copyright 2022 qwertykeys
This program is free software: you can redistribute it and/or modify
@@ -19,35 +19,36 @@ along with this program. If not, see .
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_iso(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_BSLS, KC_ENT, KC_PGDN,
- KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_iso(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_iso(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_iso(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
+ [0] = LAYOUT_65_iso_blocker(
+ 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_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_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_BSLS, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_65_iso_blocker(
+ 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_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_iso_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_65_iso_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
};
diff --git a/keyboards/qwertykeys/qk65/solder/keymaps/via/keymap.c b/keyboards/qwertykeys/qk65/solder/keymaps/via/keymap.c
index 88afc5984bb2..c1059821b1e0 100644
--- a/keyboards/qwertykeys/qk65/solder/keymaps/via/keymap.c
+++ b/keyboards/qwertykeys/qk65/solder/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/*
+/*
Copyright 2022 qwertykeys
This program is free software: you can redistribute it and/or modify
@@ -19,35 +19,36 @@ along with this program. If not, see .
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_solder(
- 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_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_ENT, KC_PGDN,
- KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_solder(
- 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_TRNS, KC_TRNS, RESET,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_solder(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_solder(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_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_ENT, KC_PGDN,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
};
diff --git a/keyboards/qwertykeys/qk65/solder/rules.mk b/keyboards/qwertykeys/qk65/solder/rules.mk
index f9417ae2bf7c..ac453b785b68 100644
--- a/keyboards/qwertykeys/qk65/solder/rules.mk
+++ b/keyboards/qwertykeys/qk65/solder/rules.mk
@@ -15,4 +15,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
\ No newline at end of file
+AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_ansi_blocker_tsangan 65_iso_blocker 65_iso_blocker_split_bs
diff --git a/keyboards/qwertykeys/qk65/solder/solder.h b/keyboards/qwertykeys/qk65/solder/solder.h
index b796ae1e912f..418bf45edd92 100644
--- a/keyboards/qwertykeys/qk65/solder/solder.h
+++ b/keyboards/qwertykeys/qk65/solder/solder.h
@@ -1,4 +1,4 @@
-/*
+/*
Copyright 2022 qwertykeys
This program is free software: you can redistribute it and/or modify
@@ -16,35 +16,150 @@ along with this program. If not, see .
*/
#pragma once
+
#include "quantum.h"
-#define LAYOUT_solder( \
- K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K113, K013, K014, \
- K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K212, K114, \
- K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \
- K300, K312, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
- K400, K401, K402, K404, K407, K408, K412, K413, K414 \
+#define ___ KC_NO
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │1D │0D │0E │ │0D │ 2u Backspace
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │1E │ │ │
+ * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter
+ * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │2C │ │
+ * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
+ * │30 │ │30 │3C │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │
+ * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │40 │41 │42 │44 │47 │48 │ │4C │4D │4E │
+ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┐
+ * │40 │41 │42 │44 │48 │ Tsangan
+ * └─────┴───┴─────┴───────────────────────────┴─────┘
+ */
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K1D, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K3C, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K47, K48, K4C, K4D, K4E \
) { \
- { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
- { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
- { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
- { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
- { K400, K401, K402, KC_NO, K404, KC_NO, KC_NO, K407, K408, KC_NO, KC_NO, KC_NO, K412, K413, K414 } \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, K47, K48, ___, ___, ___, K4C, K4D, K4E } \
}
+#define LAYOUT_65_ansi_blocker( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K47, K48, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, K47, K48, ___, ___, ___, K4C, K4D, K4E } \
+}
+#define LAYOUT_65_ansi_blocker_split_bs( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K1D, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K47, K48, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, K47, K48, ___, ___, ___, K4C, K4D, K4E } \
+}
-#define LAYOUT_iso( \
- K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
- K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, \
- K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
- K300, K312, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
- K400, K401, K402, K404, K407, K408, K412, K413, K414 \
+#define LAYOUT_65_ansi_blocker_tsangan( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K48, K4C, K4D, K4E \
) { \
- { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
- { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114 }, \
- { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
- { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
- { K400, K401, K402, KC_NO, K404, KC_NO, KC_NO, K407, K408, KC_NO, KC_NO, KC_NO, K412, K413, K414 } \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, ___, K48, ___, ___, ___, K4C, K4D, K4E } \
}
+#define LAYOUT_65_ansi_blocker_tsangan_split_bs( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K1D, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K48, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, ___, K48, ___, ___, ___, K4C, K4D, K4E } \
+}
+
+#define LAYOUT_65_iso_blocker( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K3C, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K47, K48, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, K47, K48, ___, ___, ___, K4C, K4D, K4E } \
+}
+
+#define LAYOUT_65_iso_blocker_split_bs( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K1D, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K3C, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K47, K48, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, K47, K48, ___, ___, ___, K4C, K4D, K4E } \
+}
+
+#define LAYOUT_65_iso_blocker_tsangan( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K3C, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K48, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, ___, K48, ___, ___, ___, K4C, K4D, K4E } \
+}
+
+#define LAYOUT_65_iso_blocker_tsangan_split_bs( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K1D, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K3C, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
+ K40, K41, K42, K44, K48, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, ___, K44, ___, ___, ___, K48, ___, ___, ___, K4C, K4D, K4E } \
+}
From d8707164578790e7b4aed9767431013b6ded40cb Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Wed, 6 Apr 2022 15:46:13 +0100
Subject: [PATCH 121/221] Add bluepill/blackpill development board presets
(#16806)
---
data/mappings/defaults.json | 15 +++++++++++++++
data/schemas/keyboard.jsonschema | 2 +-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/data/mappings/defaults.json b/data/mappings/defaults.json
index 3d3d915c0e56..e62ab688d6cf 100644
--- a/data/mappings/defaults.json
+++ b/data/mappings/defaults.json
@@ -15,6 +15,21 @@
"bootloader": "stm32-dfu",
"board": "QMK_PROTON_C",
"pin_compatible": "promicro"
+ },
+ "bluepill": {
+ "processor": "STM32F103",
+ "bootloader": "stm32duino",
+ "board": "STM32_F103_STM32DUINO"
+ },
+ "blackpill_f401": {
+ "processor": "STM32F401",
+ "bootloader": "stm32-dfu",
+ "board": "BLACKPILL_STM32_F401"
+ },
+ "blackpill_f411": {
+ "processor": "STM32F411",
+ "bootloader": "stm32-dfu",
+ "board": "BLACKPILL_STM32_F411"
}
}
}
\ No newline at end of file
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 9af3ef59813f..68a02420a410 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -14,7 +14,7 @@
},
"development_board": {
"type": "string",
- "enum": ["promicro", "elite_c", "proton_c"]
+ "enum": ["promicro", "elite_c", "proton_c", "bluepill", "blackpill_f401", "blackpill_f411"]
},
"pin_compatible": {
"type": "string",
From 85de02057344fe48c9b88f43260165da100ecca7 Mon Sep 17 00:00:00 2001
From: Erovia
Date: Wed, 6 Apr 2022 19:46:16 +0100
Subject: [PATCH 122/221] CLI: Bump the 'jsonschema' version (#16635)
* CLI: Bump the 'jsonschema' version
Update the used meta-schema from Draft 7 from 2018 to the latest one,
Draft 2020-12.
Currently, the validator falls back to Draft 7 if the newer validator is
not available. Draft 2020-12 support was introduced to 'jsonschema' in
version 4.0.0.
* Fix formatting
---
lib/python/qmk/json_schema.py | 6 +++++-
requirements.txt | 2 +-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/lib/python/qmk/json_schema.py b/lib/python/qmk/json_schema.py
index 2b48782fbbc4..682346113e93 100644
--- a/lib/python/qmk/json_schema.py
+++ b/lib/python/qmk/json_schema.py
@@ -68,7 +68,11 @@ def create_validator(schema):
schema_store = compile_schema_store()
resolver = jsonschema.RefResolver.from_schema(schema_store[schema], store=schema_store)
- return jsonschema.Draft7Validator(schema_store[schema], resolver=resolver).validate
+ # TODO: Remove this after the jsonschema>=4 requirement had time to reach users
+ try:
+ return jsonschema.Draft202012Validator(schema_store[schema], resolver=resolver).validate
+ except AttributeError:
+ return jsonschema.Draft7Validator(schema_store[schema], resolver=resolver).validate
def validate(data, schema):
diff --git a/requirements.txt b/requirements.txt
index 92381d7d5182..6d338ae1cbd1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,7 +4,7 @@ argcomplete
colorama
hid
hjson
-jsonschema>=3
+jsonschema>=4
milc>=1.4.2
pygments
pyusb
From fa978542e9d0250e7b65d29a6c598d40594b1f1d Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Wed, 6 Apr 2022 14:00:59 -0700
Subject: [PATCH 123/221] Sandwich Keeb68 Layout Macro Rework and Configurator
Data (#16803)
* keeb68.h: use QMK 3-character notation
* physically arrange layout macro
Moves the keycodes for Equals and Right Bracket to their proper places on the Number and Tab rows, respectively.
Also refactors the keymaps to use QMK-native keycode aliases, grid alignment, and four-space indent.
* move `keymaps/grv_esc/readme.md` to `keymaps/default/`
The file contents say "default keymap".
* enable Community Layouts support
* add QMK Configurator data
* touch-up `rules.mk`
---
keyboards/sandwich/keeb68/info.json | 83 +++++++++++++++++++
keyboards/sandwich/keeb68/keeb68.h | 23 ++---
.../sandwich/keeb68/keymaps/default/keymap.c | 22 +++--
.../keymaps/{grv_esc => default}/readme.md | 0
.../sandwich/keeb68/keymaps/grv_esc/keymap.c | 22 +++--
keyboards/sandwich/keeb68/rules.mk | 6 +-
6 files changed, 119 insertions(+), 37 deletions(-)
create mode 100644 keyboards/sandwich/keeb68/info.json
rename keyboards/sandwich/keeb68/keymaps/{grv_esc => default}/readme.md (100%)
diff --git a/keyboards/sandwich/keeb68/info.json b/keyboards/sandwich/keeb68/info.json
new file mode 100644
index 000000000000..c6b5cb4f531e
--- /dev/null
+++ b/keyboards/sandwich/keeb68/info.json
@@ -0,0 +1,83 @@
+{
+ "keyboard_name": "Keeb68 (PSE)",
+ "url": "",
+ "maintainer": "SandwichRising",
+ "layouts": {
+ "LAYOUT_65_ansi": {
+ "layout": [
+ {"label":"ESC", "x":0, "y":0},
+ {"label":"!", "x":1, "y":0},
+ {"label":"@", "x":2, "y":0},
+ {"label":"#", "x":3, "y":0},
+ {"label":"$", "x":4, "y":0},
+ {"label":"%", "x":5, "y":0},
+ {"label":"^", "x":6, "y":0},
+ {"label":"&", "x":7, "y":0},
+ {"label":"*", "x":8, "y":0},
+ {"label":"(", "x":9, "y":0},
+ {"label":")", "x":10, "y":0},
+ {"label":"_", "x":11, "y":0},
+ {"label":"+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+ {"label":"~", "x":15, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"{", "x":11.5, "y":1},
+ {"label":"}", "x":12.5, "y":1},
+ {"label":"|", "x":13.5, "y":1, "w":1.5},
+ {"label":"DEL", "x":15, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":":", "x":10.75, "y":2},
+ {"label":"\"", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+ {"label":"PG UP", "x":15, "y":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":"<", "x":9.25, "y":3},
+ {"label":">", "x":10.25, "y":3},
+ {"label":"?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":1.75},
+ {"label":"\u2191", "x":14, "y":3},
+ {"label":"PG DN", "x":15, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"Win", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"label":"Alt", "x":10, "y":4},
+ {"label":"Fn", "x":11, "y":4},
+ {"label":"Ctrl", "x":12, "y":4},
+ {"label":"\u2190", "x":13, "y":4},
+ {"label":"\u2193", "x":14, "y":4},
+ {"label":"\u2192", "x":15, "y":4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/sandwich/keeb68/keeb68.h b/keyboards/sandwich/keeb68/keeb68.h
index 10182dd9a1ad..fd5510cc3f26 100644
--- a/keyboards/sandwich/keeb68/keeb68.h
+++ b/keyboards/sandwich/keeb68/keeb68.h
@@ -18,6 +18,8 @@
#include "quantum.h"
+#define ___ KC_NO
+
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
@@ -27,16 +29,15 @@
* represents the switch matrix.
*/
#define LAYOUT_65_ansi( \
- K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \
- K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
- K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
- K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
- K400, K401, K402, K405, K406, K407, K408, K409, K410, K411, K412, K413 \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K46, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K47, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K48, K49, K4A, K4B, K4C, K4D \
) { \
- { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
- { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
- { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \
- { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \
- { K400, K401, K402, KC_NO , KC_NO , K405 , K406, K407, K408, K409, K410, K411, K412, K413 } \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, K41, K42, ___, ___, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D } \
}
-
diff --git a/keyboards/sandwich/keeb68/keymaps/default/keymap.c b/keyboards/sandwich/keeb68/keymaps/default/keymap.c
index ce08cceabfba..4c20b53e814b 100644
--- a/keyboards/sandwich/keeb68/keymaps/default/keymap.c
+++ b/keyboards/sandwich/keeb68/keymaps/default/keymap.c
@@ -24,19 +24,17 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_65_ansi(
- 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_BSPC, KC_GRV,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSLS, 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_QUOT, KC_ENT, KC_PGUP,
- 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_EQL, KC_RBRC,KC_RALT,MO(_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
-
+ 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_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 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_QUOT, KC_ENT, KC_PGUP,
+ 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[_FN] = LAYOUT_65_ansi(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_DEL, KC_PSCREEN,
- _______, _______, BL_INC, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PAUSE,
- _______, BL_TOGG, BL_DEC, BL_BRTG,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_HOME,
- _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLU, KC_END,
- _______, RESET, _______, _______,KC_F12, _______,_______,MO(_FN),_______,_______, KC_VOLD, _______
-
+ _______, 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_PSCR,
+ _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
+ _______, BL_TOGG, BL_DEC, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_END,
+ _______, RESET, _______, _______, _______, MO(_FN), _______, _______, KC_VOLD, _______
)
};
diff --git a/keyboards/sandwich/keeb68/keymaps/grv_esc/readme.md b/keyboards/sandwich/keeb68/keymaps/default/readme.md
similarity index 100%
rename from keyboards/sandwich/keeb68/keymaps/grv_esc/readme.md
rename to keyboards/sandwich/keeb68/keymaps/default/readme.md
diff --git a/keyboards/sandwich/keeb68/keymaps/grv_esc/keymap.c b/keyboards/sandwich/keeb68/keymaps/grv_esc/keymap.c
index b7853b3c311e..eb5452a7c436 100644
--- a/keyboards/sandwich/keeb68/keymaps/grv_esc/keymap.c
+++ b/keyboards/sandwich/keeb68/keymaps/grv_esc/keymap.c
@@ -24,19 +24,17 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_65_ansi(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_INS,
- 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_BSLS, 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_QUOT, KC_ENT, KC_PGUP,
- 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_EQL, KC_RBRC,KC_RALT,MO(_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
-
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
+ 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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[_FN] = LAYOUT_65_ansi(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_DEL, KC_PSCREEN,
- _______, _______, BL_INC, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PAUSE,
- _______, BL_TOGG, BL_DEC, BL_BRTG,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_HOME,
- _______, _______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLU, KC_END,
- _______, RESET, _______, _______,KC_F12, _______,_______,MO(_FN),_______,_______, KC_VOLD, _______
-
+ _______, 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_PSCR,
+ _______, _______, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
+ _______, BL_TOGG, BL_DEC, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_END,
+ _______, RESET, _______, _______, _______, MO(_FN), _______, _______, KC_VOLD, _______
)
};
diff --git a/keyboards/sandwich/keeb68/rules.mk b/keyboards/sandwich/keeb68/rules.mk
index ba835590bb10..bb1e6634d903 100644
--- a/keyboards/sandwich/keeb68/rules.mk
+++ b/keyboards/sandwich/keeb68/rules.mk
@@ -12,7 +12,9 @@ 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 = yes # Enable keyboard backlight functionality
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = 65_ansi
From d198d7924d5c881c6ce296e794990e479182db15 Mon Sep 17 00:00:00 2001
From: Laneware <68452738+Laneware@users.noreply.github.com>
Date: Thu, 7 Apr 2022 15:19:24 +1000
Subject: [PATCH 124/221] Update LW-67 info.json (#16788)
* Update info.json
Fixed:
-ISO Enter Position
-Up Arrow Position
-PgDn Position
Cause of Error:
-Keyboard Layout Editor Places Iso Enter on R1 Rather Than R2 like the ANSI Enter
* Update info.json
Fixed Compile Error to Previous Change
* Update keyboards/lw67/info.json
---
keyboards/lw67/info.json | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/keyboards/lw67/info.json b/keyboards/lw67/info.json
index 6bccc7bce343..ad15cc2264a0 100644
--- a/keyboards/lw67/info.json
+++ b/keyboards/lw67/info.json
@@ -4,19 +4,19 @@
"maintainer": "qmk",
"layouts":{
"LAYOUT_ansi":{
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}]
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}]
},
"LAYOUT_ansi_splitbs": {
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Backspace", "x":14, "y":0}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}]
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Backspace", "x":14, "y":0}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}]
},
"LAYOUT_iso": {
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}]
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}]
},
"LAYOUT_iso_splitbs": {
- "layout": [{"label":"Esc", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"\"", "x":2, "y":1.5}, {"label":"\u00a3", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"\u00ac", "x":13, "y":1.5}, {"label":"Backspace", "x":14, "y":1.5}, {"label":"Mute", "x":16, "y":2}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"@", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Delete", "x":15.5, "y":3.5}, {"label":"PgUp", "x":16.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"PgDn", "x":16.5, "y":4.5}, {"label":"\u2191", "x":15.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"\u2190", "x":14.25, "y":5.75}, {"label":"\u2193", "x":15.25, "y":5.75}, {"label":"\u2192", "x":16.25, "y":5.75}]
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"\u00ac", "x":13, "y":0}, {"label":"Backspace", "x":14, "y":0}, {"label":"Mute", "x":16, "y":0.5}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Delete", "x":15.5, "y":2}, {"label":"PgUp", "x":16.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3.25}, {"label":"PgDn", "x":16.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4.25}, {"label":"\u2193", "x":15.25, "y":4.25}, {"label":"\u2192", "x":16.25, "y":4.25}]
}
- }
+ }
}
From f4c6e76cf648366acb282d78a7de7f03bf4a365d Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Thu, 7 Apr 2022 05:51:17 -0700
Subject: [PATCH 125/221] io_mini1800 Configurator Fixes (#16813)
* info.json: apply friendly formatting
* info.json: fix key sequence errors
Fixes out-of-sequence issue for the Numpad Plus key on both layouts.
---
keyboards/io_mini1800/info.json | 190 ++++++++++++++++++++++++++++++--
1 file changed, 180 insertions(+), 10 deletions(-)
diff --git a/keyboards/io_mini1800/info.json b/keyboards/io_mini1800/info.json
index 020a776027e4..13a5fb326215 100644
--- a/keyboards/io_mini1800/info.json
+++ b/keyboards/io_mini1800/info.json
@@ -5,20 +5,190 @@
"layouts": {
"LAYOUT_625u": {
"layout": [
- {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15.25, "y":0}, {"label":"Home", "x":16.25, "y":0}, {"label":"Num Lock", "x":17.5, "y":0}, {"label":"/", "x":18.5, "y":0}, {"label":"*", "x":19.5, "y":0}, {"label":"-", "x":20.5, "y":0},
- {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"End", "x":15.25, "y":1}, {"label":"Del", "x":16.25, "y":1}, {"label":"7", "x":17.5, "y":1}, {"label":"8", "x":18.5, "y":1}, {"label":"9", "x":19.5, "y":1}, {"label":"+", "x":20.5, "y":1, "h":2},
- {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":17.5, "y":2}, {"label":"5", "x":18.5, "y":2}, {"label":"6", "x":19.5, "y":2},
- {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Up", "x":15.75, "y":3.5}, {"label":"1", "x":17.5, "y":3}, {"label":"2", "x":18.5, "y":3}, {"label":"3", "x":19.5, "y":3},
- {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Win", "x":11.5, "y":4, "w":1.25}, {"label":"Fn", "x":12.75, "y":4, "w":1.25}, {"label":"Left", "x":14.75, "y":4.5}, {"label":"Down", "x":15.75, "y":4.5}, {"label":"Right", "x":16.75, "y":4.5}, {"label":"0", "x":18.5, "y":4}, {"label":".", "x":19.5, "y":4}, {"label":"Enter", "x":20.5, "y":3, "h":2}
+ {"label":"~", "x":0, "y":0},
+ {"label":"!", "x":1, "y":0},
+ {"label":"@", "x":2, "y":0},
+ {"label":"#", "x":3, "y":0},
+ {"label":"$", "x":4, "y":0},
+ {"label":"%", "x":5, "y":0},
+ {"label":"^", "x":6, "y":0},
+ {"label":"&", "x":7, "y":0},
+ {"label":"*", "x":8, "y":0},
+ {"label":"(", "x":9, "y":0},
+ {"label":")", "x":10, "y":0},
+ {"label":"_", "x":11, "y":0},
+ {"label":"+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+ {"label":"Ins", "x":15.25, "y":0},
+ {"label":"Home", "x":16.25, "y":0},
+ {"label":"Num Lock", "x":17.5, "y":0},
+ {"label":"/", "x":18.5, "y":0},
+ {"label":"*", "x":19.5, "y":0},
+ {"label":"-", "x":20.5, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"{", "x":11.5, "y":1},
+ {"label":"}", "x":12.5, "y":1},
+ {"label":"|", "x":13.5, "y":1, "w":1.5},
+ {"label":"End", "x":15.25, "y":1},
+ {"label":"Del", "x":16.25, "y":1},
+ {"label":"7", "x":17.5, "y":1},
+ {"label":"8", "x":18.5, "y":1},
+ {"label":"9", "x":19.5, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":":", "x":10.75, "y":2},
+ {"label":"\"", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+ {"label":"4", "x":17.5, "y":2},
+ {"label":"5", "x":18.5, "y":2},
+ {"label":"6", "x":19.5, "y":2},
+ {"label":"+", "x":20.5, "y":1, "h":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":"<", "x":9.25, "y":3},
+ {"label":">", "x":10.25, "y":3},
+ {"label":"?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":2.75},
+ {"label":"Up", "x":15.75, "y":3.5},
+ {"label":"1", "x":17.5, "y":3},
+ {"label":"2", "x":18.5, "y":3},
+ {"label":"3", "x":19.5, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"Win", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"label":"Alt", "x":10, "y":4, "w":1.5},
+ {"label":"Win", "x":11.5, "y":4, "w":1.25},
+ {"label":"Fn", "x":12.75, "y":4, "w":1.25},
+ {"label":"Left", "x":14.75, "y":4.5},
+ {"label":"Down", "x":15.75, "y":4.5},
+ {"label":"Right", "x":16.75, "y":4.5},
+ {"label":"0", "x":18.5, "y":4},
+ {"label":".", "x":19.5, "y":4},
+ {"label":"Enter", "x":20.5, "y":3, "h":2}
]
},
"LAYOUT_2x3u": {
"layout": [
- {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15.25, "y":0}, {"label":"Home", "x":16.25, "y":0}, {"label":"Num Lock", "x":17.5, "y":0}, {"label":"/", "x":18.5, "y":0}, {"label":"*", "x":19.5, "y":0}, {"label":"-", "x":20.5, "y":0},
- {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"End", "x":15.25, "y":1}, {"label":"Del", "x":16.25, "y":1}, {"label":"7", "x":17.5, "y":1}, {"label":"8", "x":18.5, "y":1}, {"label":"9", "x":19.5, "y":1}, {"label":"+", "x":20.5, "y":1, "h":2},
- {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":17.5, "y":2}, {"label":"5", "x":18.5, "y":2}, {"label":"6", "x":19.5, "y":2},
- {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Up", "x":15.75, "y":3.5}, {"label":"1", "x":17.5, "y":3}, {"label":"2", "x":18.5, "y":3}, {"label":"3", "x":19.5, "y":3},
- {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":3}, {"x":6.75, "y":4, "w":3}, {"label":"Alt", "x":9.75, "y":4, "w":1.5}, {"label":"Win", "x":11.25, "y":4, "w":1.5}, {"label":"Fn", "x":12.75, "y":4, "w":1.25}, {"label":"Left", "x":14.75, "y":4.5}, {"label":"Down", "x":15.75, "y":4.5}, {"label":"Right", "x":16.75, "y":4.5}, {"label":"0", "x":18.5, "y":4}, {"label":".", "x":19.5, "y":4}, {"label":"Enter", "x":20.5, "y":3, "h":2}]
+ {"label":"~", "x":0, "y":0},
+ {"label":"!", "x":1, "y":0},
+ {"label":"@", "x":2, "y":0},
+ {"label":"#", "x":3, "y":0},
+ {"label":"$", "x":4, "y":0},
+ {"label":"%", "x":5, "y":0},
+ {"label":"^", "x":6, "y":0},
+ {"label":"&", "x":7, "y":0},
+ {"label":"*", "x":8, "y":0},
+ {"label":"(", "x":9, "y":0},
+ {"label":")", "x":10, "y":0},
+ {"label":"_", "x":11, "y":0},
+ {"label":"+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+ {"label":"Ins", "x":15.25, "y":0},
+ {"label":"Home", "x":16.25, "y":0},
+ {"label":"Num Lock", "x":17.5, "y":0},
+ {"label":"/", "x":18.5, "y":0},
+ {"label":"*", "x":19.5, "y":0},
+ {"label":"-", "x":20.5, "y":0},
+
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"{", "x":11.5, "y":1},
+ {"label":"}", "x":12.5, "y":1},
+ {"label":"|", "x":13.5, "y":1, "w":1.5},
+ {"label":"End", "x":15.25, "y":1},
+ {"label":"Del", "x":16.25, "y":1},
+ {"label":"7", "x":17.5, "y":1},
+ {"label":"8", "x":18.5, "y":1},
+ {"label":"9", "x":19.5, "y":1},
+
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":":", "x":10.75, "y":2},
+ {"label":"\"", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+ {"label":"4", "x":17.5, "y":2},
+ {"label":"5", "x":18.5, "y":2},
+ {"label":"6", "x":19.5, "y":2},
+ {"label":"+", "x":20.5, "y":1, "h":2},
+
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":"<", "x":9.25, "y":3},
+ {"label":">", "x":10.25, "y":3},
+ {"label":"?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":2.75},
+ {"label":"Up", "x":15.75, "y":3.5},
+ {"label":"1", "x":17.5, "y":3},
+ {"label":"2", "x":18.5, "y":3},
+ {"label":"3", "x":19.5, "y":3},
+
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"Win", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":3},
+ {"x":6.75, "y":4, "w":3},
+ {"label":"Alt", "x":9.75, "y":4, "w":1.5},
+ {"label":"Win", "x":11.25, "y":4, "w":1.5},
+ {"label":"Fn", "x":12.75, "y":4, "w":1.25},
+ {"label":"Left", "x":14.75, "y":4.5},
+ {"label":"Down", "x":15.75, "y":4.5},
+ {"label":"Right", "x":16.75, "y":4.5},
+ {"label":"0", "x":18.5, "y":4},
+ {"label":".", "x":19.5, "y":4},
+ {"label":"Enter", "x":20.5, "y":3, "h":2}
+ ]
}
}
}
From e2ace195b0d32af381dbf18a4a5675d36c7af983 Mon Sep 17 00:00:00 2001
From: joedinkle
Date: Thu, 7 Apr 2022 15:10:29 -0700
Subject: [PATCH 126/221] Header file fixes for all keymaps (#16180)
---
.../eyeohdesigns/theboulevard/theboulevard.h | 120 +++++++++---------
1 file changed, 60 insertions(+), 60 deletions(-)
diff --git a/keyboards/eyeohdesigns/theboulevard/theboulevard.h b/keyboards/eyeohdesigns/theboulevard/theboulevard.h
index 0b4828a1b1e7..30b5b2bedf6d 100644
--- a/keyboards/eyeohdesigns/theboulevard/theboulevard.h
+++ b/keyboards/eyeohdesigns/theboulevard/theboulevard.h
@@ -21,149 +21,149 @@
#define LAYOUT_ortho1( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b, k4c }\
}
#define LAYOUT_ortho2( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k43, k44, k45, k48, k49, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k48, k49, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, k43, k44, k45, KC_NO, KC_NO, k48, k49, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, KC_NO, KC_NO, k48, k49, k4a, k4b, k4c }\
}
#define LAYOUT_ortho3( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k43, k45, k48, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k45, k48, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, KC_NO, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, KC_NO, k4a, k4b, k4c }\
}
#define LAYOUT_ortho4( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k46, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k46, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c }\
}
#define LAYOUT_ortho5( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k47, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k47, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c },\
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k4b, k4c }\
}
#define LAYOUT_stagger1( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
+ k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, KC_NO, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
+ { k30, k31, KC_NO, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b, k4c }\
}
#define LAYOUT_stagger2( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k43, k44, k45, k48, k49, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
+ k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k48, k49, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, KC_NO, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, k43, k44, k45, KC_NO, KC_NO, k48, k49, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
+ { k30, k31, KC_NO, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, KC_NO, KC_NO, k48, k49, k4a, k4b, k4c }\
}
#define LAYOUT_stagger3( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k43, k45, k48, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
+ k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k45, k48, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, KC_NO, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, KC_NO, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
+ { k30, k31, KC_NO, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, KC_NO, k45, KC_NO, KC_NO, k48, KC_NO, k4a, k4b, k4c }\
}
#define LAYOUT_stagger4( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k46, k4a, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
+ k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k46, k4a, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, KC_NO, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
+ { k30, k31, KC_NO, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c }\
}
#define LAYOUT_stagger5( \
k00, k01, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
- k20, k21, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
- k40, k41, k42, k47, k4b, k4c \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \
+ k30, k31, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k47, k4b, k4c \
) \
{ \
{ k00, k01, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k0a, k0b, k0c },\
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c },\
- { k20, k21, KC_NO, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
- { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k4b, k4c }\
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, KC_NO, k2c },\
+ { k30, k31, KC_NO, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k4b, k4c }\
}
From 2cfbc1445cfd8986a76872a30454ddc2e98f6d63 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Fri, 8 Apr 2022 20:12:32 +0100
Subject: [PATCH 127/221] Allow new-keyboard to use development_board presets
(#16785)
---
lib/python/qmk/cli/new/keyboard.py | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py
index 1cdfe5320687..8d4def1bef5f 100644
--- a/lib/python/qmk/cli/new/keyboard.py
+++ b/lib/python/qmk/cli/new/keyboard.py
@@ -14,7 +14,7 @@
from qmk.json_schema import load_jsonschema
from qmk.path import keyboard
from qmk.json_encoders import InfoJSONEncoder
-from qmk.json_schema import deep_update
+from qmk.json_schema import deep_update, json_load
from qmk.constants import MCU2BOOTLOADER
COMMUNITY = Path('layouts/default/')
@@ -23,13 +23,14 @@
# defaults
schema = dotty(load_jsonschema('keyboard'))
mcu_types = sorted(schema["properties.processor.enum"], key=str.casefold)
+dev_boards = sorted(schema["properties.development_board.enum"], key=str.casefold)
available_layouts = sorted([x.name for x in COMMUNITY.iterdir() if x.is_dir()])
def mcu_type(mcu):
"""Callable for argparse validation.
"""
- if mcu not in mcu_types:
+ if mcu not in (dev_boards + mcu_types):
raise ValueError
return mcu
@@ -176,14 +177,14 @@ def prompt_mcu():
MCU? """
# remove any options strictly used for compatibility
- filtered_mcu = [x for x in mcu_types if not any(xs in x for xs in ['cortex', 'unknown'])]
+ filtered_mcu = [x for x in (dev_boards + mcu_types) if not any(xs in x for xs in ['cortex', 'unknown'])]
return choice(prompt, filtered_mcu, default=filtered_mcu.index("atmega32u4"))
@cli.argument('-kb', '--keyboard', help='Specify the name for the new keyboard directory', arg_only=True, type=keyboard_name)
@cli.argument('-l', '--layout', help='Community layout to bootstrap with', arg_only=True, type=layout_type)
-@cli.argument('-t', '--type', help='Specify the keyboard MCU type', arg_only=True, type=mcu_type)
+@cli.argument('-t', '--type', help='Specify the keyboard MCU type (or "development_board" preset)', arg_only=True, type=mcu_type)
@cli.argument('-u', '--username', help='Specify your username (default from Git config)', dest='name')
@cli.argument('-n', '--realname', help='Specify your real name if you want to use that. Defaults to username', arg_only=True)
@cli.subcommand('Creates a new keyboard directory')
@@ -198,7 +199,6 @@ def new_keyboard(cli):
real_name = cli.args.realname or cli.config.new_keyboard.name if cli.args.realname or cli.config.new_keyboard.name else prompt_name(user_name)
default_layout = cli.args.layout if cli.args.layout else prompt_layout()
mcu = cli.args.type if cli.args.type else prompt_mcu()
- bootloader = select_default_bootloader(mcu)
if not validate_keyboard_name(kb_name):
cli.log.error('Keyboard names must contain only {fg_cyan}lowercase a-z{fg_reset}, {fg_cyan}0-9{fg_reset}, and {fg_cyan}_{fg_reset}! Please choose a different name.')
@@ -208,6 +208,16 @@ def new_keyboard(cli):
cli.log.error(f'Keyboard {{fg_cyan}}{kb_name}{{fg_reset}} already exists! Please choose a different name.')
return 1
+ # Preprocess any development_board presets
+ if mcu in dev_boards:
+ defaults_map = json_load(Path('data/mappings/defaults.json'))
+ board = defaults_map['development_board'][mcu]
+
+ mcu = board['processor']
+ bootloader = board['bootloader']
+ else:
+ bootloader = select_default_bootloader(mcu)
+
tokens = { # Comment here is to force multiline formatting
'YEAR': str(date.today().year),
'KEYBOARD': kb_name,
From 98d411232f1e94b5bbd0d6e087fccc3cb222f19a Mon Sep 17 00:00:00 2001
From: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Date: Sun, 10 Apr 2022 03:06:12 +0900
Subject: [PATCH 128/221] Reduce the size of the keymap helix:fraanrosi
(#16717)
---
keyboards/helix/rev2/keymaps/fraanrosi/rules.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyboards/helix/rev2/keymaps/fraanrosi/rules.mk b/keyboards/helix/rev2/keymaps/fraanrosi/rules.mk
index 4e80183863bb..dd0d2eba0730 100644
--- a/keyboards/helix/rev2/keymaps/fraanrosi/rules.mk
+++ b/keyboards/helix/rev2/keymaps/fraanrosi/rules.mk
@@ -6,7 +6,7 @@
# See TOP/docs/config_options.md for more information.
#
SPLIT_KEYBOARD = yes
-LTO_ENABLE = no # if firmware size over limit, try this option
+LTO_ENABLE = yes # if firmware size over limit, try this option
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
# AUDIO_ENABLE = yes # Audio output on port C6
From 84c9d6ff39b92892c385c320f3d36145d71c9095 Mon Sep 17 00:00:00 2001
From: Simon Arlott <70171+nomis@users.noreply.github.com>
Date: Sat, 9 Apr 2022 19:49:20 +0100
Subject: [PATCH 129/221] [Bug] Fix matrix scan reporting interval (#16825)
---
quantum/keyboard.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/quantum/keyboard.c b/quantum/keyboard.c
index ba5609f0aabf..ce4f06ae69ba 100644
--- a/quantum/keyboard.c
+++ b/quantum/keyboard.c
@@ -149,7 +149,7 @@ void matrix_scan_perf_task(void) {
matrix_scan_count++;
uint32_t timer_now = timer_read32();
- if (TIMER_DIFF_32(timer_now, matrix_timer) > 1000) {
+ if (TIMER_DIFF_32(timer_now, matrix_timer) >= 1000) {
# if defined(CONSOLE_ENABLE)
dprintf("matrix scan frequency: %lu\n", matrix_scan_count);
# endif
From bf67abb046846e95137052b30d6aee458ad7c1f9 Mon Sep 17 00:00:00 2001
From: Sascha
Date: Sun, 10 Apr 2022 00:27:02 +0200
Subject: [PATCH 130/221] Fixed usb read loops not reading until timeout
(#16827)
* the size variable was redeclared (hiding the variable of the outside scope) and therefore the while check was always false, so the compiler just removed the do while loop, but it would be better to read all data and only exit the task, after this is done
---
tmk_core/protocol/chibios/usb_main.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c
index d9aa351ecbe2..bd8af6d194fe 100644
--- a/tmk_core/protocol/chibios/usb_main.c
+++ b/tmk_core/protocol/chibios/usb_main.c
@@ -1074,7 +1074,7 @@ void console_task(void) {
uint8_t buffer[CONSOLE_EPSIZE];
size_t size = 0;
do {
- size_t size = chnReadTimeout(&drivers.console_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE);
+ size = chnReadTimeout(&drivers.console_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE);
if (size > 0) {
console_receive(buffer, size);
}
@@ -1102,7 +1102,7 @@ void raw_hid_task(void) {
uint8_t buffer[RAW_EPSIZE];
size_t size = 0;
do {
- size_t size = chnReadTimeout(&drivers.raw_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE);
+ size = chnReadTimeout(&drivers.raw_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE);
if (size > 0) {
raw_hid_receive(buffer, size);
}
@@ -1125,7 +1125,7 @@ void midi_ep_task(void) {
uint8_t buffer[MIDI_STREAM_EPSIZE];
size_t size = 0;
do {
- size_t size = chnReadTimeout(&drivers.midi_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE);
+ size = chnReadTimeout(&drivers.midi_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE);
if (size > 0) {
MIDI_EventPacket_t event;
recv_midi_packet(&event);
From 3bde05c568afec6bbb45c7d07ab55a0c8b738cc0 Mon Sep 17 00:00:00 2001
From: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Date: Mon, 11 Apr 2022 18:09:37 +0900
Subject: [PATCH 131/221] Change helix:froggy keymap to use split_common
(#16703)
* create LAYOUT_half() macro into helix/rev2/keymaps/froggy/keymap.c
* Makes QMK standerd OLED driver used by the helix:froggy keymap switchable.
* Change helix:froggy keymap to use split_common
---
keyboards/helix/rev2/keymaps/froggy/config.h | 6 +
keyboards/helix/rev2/keymaps/froggy/keymap.c | 331 +++++++++++++------
keyboards/helix/rev2/keymaps/froggy/rules.mk | 9 +
3 files changed, 237 insertions(+), 109 deletions(-)
diff --git a/keyboards/helix/rev2/keymaps/froggy/config.h b/keyboards/helix/rev2/keymaps/froggy/config.h
index 517368ae941d..fea362bcd614 100644
--- a/keyboards/helix/rev2/keymaps/froggy/config.h
+++ b/keyboards/helix/rev2/keymaps/froggy/config.h
@@ -26,6 +26,12 @@ along with this program. If not, see .
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
+// the froggy keymap does not use the right hand side, so sync_timer is not needed
+#define DISABLE_SYNC_TIMER
+// For the same reason, the following are also not needed
+#undef SPLIT_LAYER_STATE_ENABLE
+#undef SPLIT_LED_STATE_ENABLE
+
// If you need more program area, try select and reduce rgblight modes to use.
// Selection of RGBLIGHT MODE to use.
diff --git a/keyboards/helix/rev2/keymaps/froggy/keymap.c b/keyboards/helix/rev2/keymaps/froggy/keymap.c
index 15fe1afb0cb9..484a0a34b91b 100644
--- a/keyboards/helix/rev2/keymaps/froggy/keymap.c
+++ b/keyboards/helix/rev2/keymaps/froggy/keymap.c
@@ -1,24 +1,31 @@
#include QMK_KEYBOARD_H
-#include "bootloader.h"
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-#ifdef AUDIO_ENABLE
- #include "audio.h"
-#endif
-#ifdef SSD1306OLED
- #include "ssd1306.h"
-#endif
+#include
-extern keymap_config_t keymap_config;
+#define MIN(x, y) (((x) < (y)) ? (x) : (y))
+#define MAX(x, y) (((x) > (y)) ? (x) : (y))
-#ifdef RGBLIGHT_ENABLE
-//Following line allows macro to read current RGB settings
-extern rgblight_config_t rgblight_config;
+#ifdef SSD1306OLED
+ #include "ssd1306.h"
#endif
-extern uint8_t is_master;
+#define LAYOUT_half( \
+ L00, L01, L02, L03, L04, L05, \
+ L10, L11, L12, L13, L14, L15, \
+ L20, L21, L22, L23, L24, L25, \
+ L30, L31, L32, L33, L34, L35, L36, \
+ L40, L41, L42, L43, L44, L45, L46 \
+) { \
+ { L00, L01, L02, L03, L04, L05, KC_NO }, \
+ { L10, L11, L12, L13, L14, L15, KC_NO }, \
+ { L20, L21, L22, L23, L24, L25, KC_NO }, \
+ { L30, L31, L32, L33, L34, L35, L36 }, \
+ { L40, L41, L42, L43, L44, L45, L46 }, \
+ { _______, _______, _______, _______, _______, _______, KC_NO }, \
+ { _______, _______, _______, _______, _______, _______, KC_NO }, \
+ { _______, _______, _______, _______, _______, _______, KC_NO }, \
+ { _______, _______, _______, _______, _______, _______, _______ }, \
+ { _______, _______, _______, _______, _______, _______, _______ } \
+}
#define DELAY_TIME 75
static uint16_t key_timer;
@@ -68,108 +75,107 @@ enum macro_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
- * ,-----------------------------------------. ,-----------------------------------------.
- * | C+z | ; | [ | ( | < | { | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | KANA | P | K | R | A | F | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | BS | D | T | H | E | O | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Y | S | N | I | U |Space | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Gui | Sym | Num | OPT | Ent | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | C+z | ; | [ | ( | < | { |
+ * |------+------+------+------+------+------|
+ * | KANA | P | K | R | A | F |
+ * |------+------+------+------+------+------|
+ * | BS | D | T | H | E | O |
+ * |------+------+------+------+------+------+------.
+ * | Shift| Y | S | N | I | U |Space |
+ * |------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Gui | Sym | Num | OPT | Ent |
+ * `------------------------------------------------'
*/
- [_BASE] = LAYOUT( \
- LCTL(KC_Z), KC_SCLN, KC_LBRC, KC_LPRN, KC_LT, KC_LCBR, _______, _______, _______, _______, _______, _______, \
- KANA, KC_P, KC_K, KC_R, KC_A, KC_F, _______, _______, _______, _______, _______, _______, \
- KC_BSPC, KC_D, KC_T, KC_H, KC_E, KC_O, _______, _______, _______, _______, _______, _______, \
- OSM(MOD_LSFT), KC_Y, KC_S, KC_N, KC_I, KC_U, KC_SPC, _______, _______, _______, _______, _______, _______, _______, \
- OSM(MOD_LCTL), OSM(MOD_LALT), OSM(MOD_LGUI), MO(_SYM), MO(_NUM), OPT_TAP_SP, KC_ENT, _______, _______, _______, _______, _______, _______, _______ \
- ),
+ [_BASE] = LAYOUT_half( \
+ LCTL(KC_Z), KC_SCLN, KC_LBRC, KC_LPRN, KC_LT, KC_LCBR, \
+ KANA, KC_P, KC_K, KC_R, KC_A, KC_F, \
+ KC_BSPC, KC_D, KC_T, KC_H, KC_E, KC_O, \
+ OSM(MOD_LSFT), KC_Y, KC_S, KC_N, KC_I, KC_U, KC_SPC, \
+ OSM(MOD_LCTL), OSM(MOD_LALT), OSM(MOD_LGUI), MO(_SYM), MO(_NUM), OPT_TAP_SP, KC_ENT ),
/* Opt
- * ,-----------------------------------------. ,-----------------------------------------.
- * | Esc | : | ] | ) | > | } | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | EISU| J | M | B | ' | Tab | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | . | V | C | L | Z | Q | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | X | G | W | - | Del | Esc | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | , | DTOP | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | Esc | : | ] | ) | > | } |
+ * |------+------+------+------+------+------|
+ * | EISU| J | M | B | ' | Tab |
+ * |------+------+------+------+------+------|
+ * | . | V | C | L | Z | Q |
+ * |------+------+------+------+------+------+------.
+ * | | X | G | W | - | Del | Esc |
+ * |------+------+------+------+------+------+------|
+ * | | | | , | DTOP | | |
+ * `------------------------------------------------'
*/
- [_OPT] = LAYOUT( \
- KC_ESC, KC_COLN,KC_RBRC, KC_RPRN,KC_GT, KC_RCBR, _______, _______, _______, _______, _______, _______, \
- EISU, KC_J, KC_M, KC_B, KC_QUOT, KC_TAB, _______, _______, _______, _______, _______, _______, \
- KC_DOT, KC_V, KC_C, KC_L, KC_Z, KC_Q, _______, _______, _______, _______, _______, _______, \
- _______, KC_X, KC_G, KC_W, KC_MINUS, KC_DEL, KC_ESC, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______,_______, KC_COMM,DESKTOP, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_OPT] = LAYOUT_half( \
+ KC_ESC, KC_COLN,KC_RBRC, KC_RPRN,KC_GT, KC_RCBR, \
+ EISU, KC_J, KC_M, KC_B, KC_QUOT, KC_TAB, \
+ KC_DOT, KC_V, KC_C, KC_L, KC_Z, KC_Q, \
+ _______, KC_X, KC_G, KC_W, KC_MINUS, KC_DEL, KC_ESC, \
+ _______, _______,_______, KC_COMM,DESKTOP, _______, _______ \
),
/* Func
- * ,-----------------------------------------. ,-----------------------------------------.
- * |RGBRST| Hue | | RST | Mac | Win | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | RGB1 | VAL+ | F7 | F8 | F9 | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | RGB2 | VAL- | F4 | F5 | F6 | F12 | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | RGB3 | F10 | F1 | F2 | F3 | F11 | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * |RGBOFF| | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * |RGBRST| Hue | | RST | Mac | Win |
+ * |------+------+------+------+------+------|
+ * | RGB1 | VAL+ | F7 | F8 | F9 | |
+ * |------+------+------+------+------+------|
+ * | RGB2 | VAL- | F4 | F5 | F6 | F12 |
+ * |------+------+------+------+------+------+------.
+ * | RGB3 | F10 | F1 | F2 | F3 | F11 | |
+ * |------+------+------+------+------+------+------|
+ * |RGBOFF| | | | | | |
+ * `------------------------------------------------'
*/
- [_FUNC] = LAYOUT( \
- RGBRST,RGB_HUI, _______, RESET, MAC, WIN, _______, _______, _______, _______, _______, _______, \
- RGB1, RGB_VAI, KC_F7, KC_F8, KC_F9, _______, _______, _______, _______, _______, _______, _______, \
- RGB2, RGB_VAD, KC_F4, KC_F5, KC_F6, KC_F12, _______, _______, _______, _______, _______, _______, \
- RGB3, KC_F10, KC_F1, KC_F2, KC_F3, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______, \
- RGBOFF,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_FUNC] = LAYOUT_half( \
+ RGBRST,RGB_HUI, _______, RESET, MAC, WIN, \
+ RGB1, RGB_VAI, KC_F7, KC_F8, KC_F9, _______, \
+ RGB2, RGB_VAD, KC_F4, KC_F5, KC_F6, KC_F12, \
+ RGB3, KC_F10, KC_F1, KC_F2, KC_F3, KC_F11, _______, \
+ RGBOFF,_______, _______, _______, _______, _______, _______ \
),
/* Sym
- * ,-----------------------------------------. ,-----------------------------------------.
- * | Ins | GRV | | PU | PD | ^ | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | \ | # | = | ? | % | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | $ | upA | @ | ! | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | CL | <- | dwA | -> | _ | & | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | PS | | ~ | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | Ins | GRV | | PU | PD | ^ |
+ * |------+------+------+------+------+------|
+ * | | \ | # | = | ? | % |
+ * |------+------+------+------+------+------|
+ * | | $ | upA | @ | ! | | |
+ * |------+------+------+------+------+------+------.
+ * | CL | <- | dwA | -> | _ | & | |
+ * |------+------+------+------+------+------+------|
+ * | | | PS | | ~ | | |
+ * `------------------------------------------------'
*/
- [_SYM] = LAYOUT( \
- KC_INS, KC_GRV, _______, KC_PGUP, KC_PGDN, KC_CIRC, _______, _______, _______, _______, _______, _______, \
- _______, KC_BSLS, KC_HASH, KC_EQL, KC_QUES, KC_PERC, _______, _______, _______, _______, _______, _______, \
- _______, KC_DLR, KC_UP, KC_AT, KC_EXLM, KC_PIPE, _______, _______, _______, _______, _______, _______, \
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_UNDS, KC_AMPR, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, KC_PSCR, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_SYM] = LAYOUT_half( \
+ KC_INS, KC_GRV, _______, KC_PGUP, KC_PGDN, KC_CIRC, \
+ _______, KC_BSLS, KC_HASH, KC_EQL, KC_QUES, KC_PERC, \
+ _______, KC_DLR, KC_UP, KC_AT, KC_EXLM, KC_PIPE, \
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_UNDS, KC_AMPR, _______, \
+ _______, _______, KC_PSCR, _______, KC_TILD, _______, _______ \
),
/* Raise
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | Func | home | End | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | * | 7 | 8 | 9 | - | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | . | / | 4 | 5 | 6 | + | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | LN | 0 | 1 | 2 | 3 |C+S+F1| | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | , | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | | | Func | home | End | |
+ * |------+------+------+------+------+------|
+ * | | * | 7 | 8 | 9 | - |
+ * |------+------+------+------+------+------|
+ * | . | / | 4 | 5 | 6 | + |
+ * |------+------+------+------+------+------+------.
+ * | LN | 0 | 1 | 2 | 3 |C+S+F1| |
+ * |------+------+------+------+------+------+------|
+ * | | | | , | | | |
+ * `------------------------------------------------'
*/
- [_NUM] = LAYOUT( \
- _______, _______, OSL(_FUNC), KC_HOME, KC_END, _______, _______, _______, _______, _______, _______, _______, \
- _______, KC_ASTR, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, _______, _______, _______, _______, \
- KC_PDOT, KC_SLSH, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, _______, _______, _______, _______, _______, \
- KC_NLCK, KC_P0, KC_P1, KC_P2, KC_P3, LCTL(S(KC_F1)), _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, KC_PDOT, KC_COMM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_NUM] = LAYOUT_half( \
+ _______, _______, OSL(_FUNC), KC_HOME, KC_END, _______, \
+ _______, KC_ASTR, KC_P7, KC_P8, KC_P9, KC_MINS, \
+ KC_PDOT, KC_SLSH, KC_P4, KC_P5, KC_P6, KC_PLUS, \
+ KC_NLCK, KC_P0, KC_P1, KC_P2, KC_P3, LCTL(S(KC_F1)), _______, \
+ _______, _______, KC_PDOT, KC_COMM, _______, _______, _______ \
)
};
#else
@@ -268,7 +274,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef RGBLIGHT_ENABLE
col = record->event.key.col;
row = record->event.key.row;
- if (record->event.pressed && ((row < 5 && is_master) || (row >= 5 && !is_master))) {
+ if (record->event.pressed && ((row < 5 && is_keyboard_master()) || (row >= 5 && !is_keyboard_master()))) {
int end = keybuf_end;
keybufs[end].col = col;
keybufs[end].row = row % 5;
@@ -379,7 +385,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
- RGB_current_mode = rgblight_config.mode;
+ RGB_current_mode = rgblight_get_mode();
RGBAnimation = false;
}
#endif
@@ -396,7 +402,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
RGBAnimation = true;
rgblight_mode(RGBLIGHT_MODE_RAINBOW_MOOD);
- RGB_current_mode = rgblight_config.mode;
+ RGB_current_mode = rgblight_get_mode();
}
#endif
break;
@@ -405,7 +411,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
RGBAnimation = true;
rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 1);
- RGB_current_mode = rgblight_config.mode;
+ RGB_current_mode = rgblight_get_mode();
}
#endif
break;
@@ -414,7 +420,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
RGBAnimation = true;
rgblight_mode(RGBLIGHT_MODE_KNIGHT);
- RGB_current_mode = rgblight_config.mode;
+ RGB_current_mode = rgblight_get_mode();
}
#endif
break;
@@ -447,7 +453,7 @@ void matrix_init_user(void) {
startup_user();
#endif
#ifdef RGBLIGHT_ENABLE
- RGB_current_mode = rgblight_config.mode;
+ RGB_current_mode = rgblight_get_mode();
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
@@ -733,10 +739,117 @@ void iota_gfx_task_user(void) {
#endif
matrix_clear(&matrix);
- if(is_master){
+ if (is_keyboard_master()) {
render_status(&matrix);
}
matrix_update(&display, &matrix);
}
+#endif // end of SSD1306OLED
+
+//OLED update loop
+#ifdef OLED_ENABLE
+
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ return OLED_ROTATION_0;
+}
+
+// Render to OLED
+void render_status(void) {
+
+ // froggy logo
+ static char logo[4][1][17]=
+ {
+ {
+ {0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0}
+ },
+ {
+ {0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0}
+ },
+ {
+ {0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0}
+ },
+ {
+ {0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0}
+ }
+ };
+
+ static char indctr[8][2][4]=
+ {
+ // white icon
+ {
+ {0x60,0x61,0x62,0},
+ {0x63,0x64,0}
+ },
+ {
+ {0x80,0x81,0x82,0},
+ {0x83,0x84,0}
+ },
+ {
+ {0xa0,0xa1,0xa2,0},
+ {0xa3,0xa4,0}
+ },
+ {
+ {0xc0,0xc1,0xc2,0},
+ {0xc3,0xc4,0}
+ },
+ // Black icon
+ {
+ {0x75,0x76,0x77,0},
+ {0x78,0x79,0}
+ },
+ {
+ {0x95,0x96,0x97,0},
+ {0x98,0x99,0}
+ },
+ {
+ {0xb5,0xb6,0xb7,0},
+ {0xb8,0xb9,0}
+ },
+ {
+ {0xd5,0xd6,0xd7,0},
+ {0xd8,0xd9,0}
+ },
+ };
+
+ int rown = 0;
+ int rowf = 0;
+ int rowa = 0;
+ int rows = 0;
+
+ //Set Indicator icon
+ if (host_keyboard_leds() & (1<
Date: Mon, 11 Apr 2022 11:18:44 +0100
Subject: [PATCH 132/221] GMMK Pro return false in encoder user. (#16830)
---
keyboards/gmmk/pro/ansi/keymaps/default/keymap.c | 2 +-
keyboards/gmmk/pro/ansi/keymaps/via/keymap.c | 2 +-
keyboards/gmmk/pro/iso/keymaps/default/keymap.c | 2 +-
keyboards/gmmk/pro/iso/keymaps/via/keymap.c | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/keyboards/gmmk/pro/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/default/keymap.c
index 65ccaf88f293..0d161e5bdd02 100644
--- a/keyboards/gmmk/pro/ansi/keymaps/default/keymap.c
+++ b/keyboards/gmmk/pro/ansi/keymaps/default/keymap.c
@@ -67,6 +67,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
} else {
tap_code(KC_VOLD);
}
- return true;
+ return false;
}
#endif // ENCODER_ENABLE
diff --git a/keyboards/gmmk/pro/ansi/keymaps/via/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/via/keymap.c
index 9b13f75a85f9..d50bbfbf566e 100644
--- a/keyboards/gmmk/pro/ansi/keymaps/via/keymap.c
+++ b/keyboards/gmmk/pro/ansi/keymaps/via/keymap.c
@@ -84,6 +84,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
} else {
tap_code(KC_VOLD);
}
- return true;
+ return false;
}
#endif // ENCODER_ENABLE
diff --git a/keyboards/gmmk/pro/iso/keymaps/default/keymap.c b/keyboards/gmmk/pro/iso/keymaps/default/keymap.c
index 67b95c755f75..3bdacda6c82d 100644
--- a/keyboards/gmmk/pro/iso/keymaps/default/keymap.c
+++ b/keyboards/gmmk/pro/iso/keymaps/default/keymap.c
@@ -67,6 +67,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
} else {
tap_code(KC_VOLD);
}
- return true;
+ return false;
}
#endif
diff --git a/keyboards/gmmk/pro/iso/keymaps/via/keymap.c b/keyboards/gmmk/pro/iso/keymaps/via/keymap.c
index c83af17fe103..880785ebbec9 100644
--- a/keyboards/gmmk/pro/iso/keymaps/via/keymap.c
+++ b/keyboards/gmmk/pro/iso/keymaps/via/keymap.c
@@ -86,6 +86,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
} else {
tap_code(KC_VOLD);
}
- return true;
+ return false;
}
#endif // ENCODER_ENABLE
From 0524a82a88aef8cc2036e7ab1d603b6c78c54fd9 Mon Sep 17 00:00:00 2001
From: Kamil Zielinski
Date: Mon, 11 Apr 2022 15:11:14 +0200
Subject: [PATCH 133/221] Fix numbering to match the correct columns (#16831)
---
keyboards/bastardkb/skeletyl/skeletyl.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/keyboards/bastardkb/skeletyl/skeletyl.h b/keyboards/bastardkb/skeletyl/skeletyl.h
index 3e90abb01d51..c7ad89bd2b6c 100644
--- a/keyboards/bastardkb/skeletyl/skeletyl.h
+++ b/keyboards/bastardkb/skeletyl/skeletyl.h
@@ -23,16 +23,16 @@
k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \
k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \
k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \
- k33, k34, k31, k71, k74, k73 \
+ k32, k33, k30, k70, k73, k72 \
) \
{ \
{ k00, k01, k02, k03, k04 }, \
{ k10, k11, k12, k13, k14 }, \
{ k20, k21, k22, k23, k24 }, \
- { k31, KC_NO, k33, k34, KC_NO }, \
+ { k30, KC_NO, k32, k33, KC_NO }, \
{ k40, k41, k42, k43, k44 }, \
{ k50, k51, k52, k53, k54 }, \
{ k60, k61, k62, k63, k64 }, \
- { k71, KC_NO, k73, k74, KC_NO }, \
+ { k70, KC_NO, k72, k73, KC_NO }, \
}
// clang-format on
From a5e41615f729ab1d68e56a59f05dbcad30beadd7 Mon Sep 17 00:00:00 2001
From: Daniel Perrett
Date: Wed, 13 Apr 2022 06:25:19 +0100
Subject: [PATCH 134/221] [Keyboard] Add userspace pdl and a handwired board
(#14199)
Co-authored-by: Drashna Jaelre
Co-authored-by: Joel Challis
Co-authored-by: Ryan
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
---
keyboards/crkbd/keymaps/pdl/config.h | 30 +++
keyboards/crkbd/keymaps/pdl/keymap.c | 62 +++++
.../foostan/cornelius/keymaps/pdl/config.h | 30 +++
.../foostan/cornelius/keymaps/pdl/keymap.c | 62 +++++
.../foostan/cornelius/keymaps/pdl/readme.md | 1 +
keyboards/handwired/reclined/config.h | 65 ++++++
keyboards/handwired/reclined/info.json | 87 +++++++
.../reclined/keymaps/default/keymap.c | 26 +++
.../reclined/keymaps/default/readme.md | 1 +
.../handwired/reclined/keymaps/pdl/config.h | 23 ++
.../handwired/reclined/keymaps/pdl/keymap.c | 69 ++++++
.../handwired/reclined/keymaps/pdl/rules.mk | 0
keyboards/handwired/reclined/readme.md | 17 ++
keyboards/handwired/reclined/reclined.c | 16 ++
keyboards/handwired/reclined/reclined.h | 35 +++
keyboards/handwired/reclined/rules.mk | 18 ++
keyboards/lets_split/keymaps/pdl/config.h | 36 +++
keyboards/lets_split/keymaps/pdl/keymap.c | 69 ++++++
keyboards/lets_split/keymaps/pdl/rules.mk | 1 +
keyboards/orthodox/keymaps/pdl/config.h | 35 +++
keyboards/orthodox/keymaps/pdl/keymap.c | 68 ++++++
keyboards/orthodox/keymaps/pdl/rules.mk | 1 +
users/pdl/pdl.c | 216 ++++++++++++++++++
users/pdl/pdl.h | 135 +++++++++++
users/pdl/rules.mk | 1 +
25 files changed, 1104 insertions(+)
create mode 100644 keyboards/crkbd/keymaps/pdl/config.h
create mode 100644 keyboards/crkbd/keymaps/pdl/keymap.c
create mode 100644 keyboards/foostan/cornelius/keymaps/pdl/config.h
create mode 100644 keyboards/foostan/cornelius/keymaps/pdl/keymap.c
create mode 100644 keyboards/foostan/cornelius/keymaps/pdl/readme.md
create mode 100644 keyboards/handwired/reclined/config.h
create mode 100644 keyboards/handwired/reclined/info.json
create mode 100644 keyboards/handwired/reclined/keymaps/default/keymap.c
create mode 100644 keyboards/handwired/reclined/keymaps/default/readme.md
create mode 100644 keyboards/handwired/reclined/keymaps/pdl/config.h
create mode 100644 keyboards/handwired/reclined/keymaps/pdl/keymap.c
create mode 100644 keyboards/handwired/reclined/keymaps/pdl/rules.mk
create mode 100644 keyboards/handwired/reclined/readme.md
create mode 100644 keyboards/handwired/reclined/reclined.c
create mode 100644 keyboards/handwired/reclined/reclined.h
create mode 100644 keyboards/handwired/reclined/rules.mk
create mode 100644 keyboards/lets_split/keymaps/pdl/config.h
create mode 100644 keyboards/lets_split/keymaps/pdl/keymap.c
create mode 100644 keyboards/lets_split/keymaps/pdl/rules.mk
create mode 100644 keyboards/orthodox/keymaps/pdl/config.h
create mode 100644 keyboards/orthodox/keymaps/pdl/keymap.c
create mode 100644 keyboards/orthodox/keymaps/pdl/rules.mk
create mode 100644 users/pdl/pdl.c
create mode 100644 users/pdl/pdl.h
create mode 100644 users/pdl/rules.mk
diff --git a/keyboards/crkbd/keymaps/pdl/config.h b/keyboards/crkbd/keymaps/pdl/config.h
new file mode 100644
index 000000000000..b25d48de0235
--- /dev/null
+++ b/keyboards/crkbd/keymaps/pdl/config.h
@@ -0,0 +1,30 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2021 Daniel Perrett
+
+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 .
+*/
+
+#pragma once
+
+
+#define TAPPING_TOGGLE 2
+#define TAPPING_TERM 200
+
+#define COMBO_PDL
+#define COMBO_COUNT 28
+#define COMBO_TERM 100
diff --git a/keyboards/crkbd/keymaps/pdl/keymap.c b/keyboards/crkbd/keymaps/pdl/keymap.c
new file mode 100644
index 000000000000..1060a92650d4
--- /dev/null
+++ b/keyboards/crkbd/keymaps/pdl/keymap.c
@@ -0,0 +1,62 @@
+/* Copyright 2022 Daniel Perrett
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+#include "pdl.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_wrapper(
+ MY_FESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
+ KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
+ MY_SBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_CENT,
+ KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN
+ ),
+ [_PROXIM] = LAYOUT_wrapper(
+ MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
+ KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
+ MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_CENT,
+ KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN
+ ),
+ [_NAVIGN] = LAYOUT_wrapper(
+ _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+ [_PUNCTN] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+ [_NUMBRS] = LAYOUT_wrapper(
+ _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+ [_CODING] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+ [_FUNCTN] = LAYOUT_wrapper(
+ _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
+ _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
+ _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/foostan/cornelius/keymaps/pdl/config.h b/keyboards/foostan/cornelius/keymaps/pdl/config.h
new file mode 100644
index 000000000000..b25d48de0235
--- /dev/null
+++ b/keyboards/foostan/cornelius/keymaps/pdl/config.h
@@ -0,0 +1,30 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2021 Daniel Perrett
+
+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 .
+*/
+
+#pragma once
+
+
+#define TAPPING_TOGGLE 2
+#define TAPPING_TERM 200
+
+#define COMBO_PDL
+#define COMBO_COUNT 28
+#define COMBO_TERM 100
diff --git a/keyboards/foostan/cornelius/keymaps/pdl/keymap.c b/keyboards/foostan/cornelius/keymaps/pdl/keymap.c
new file mode 100644
index 000000000000..3b71280ad8bd
--- /dev/null
+++ b/keyboards/foostan/cornelius/keymaps/pdl/keymap.c
@@ -0,0 +1,62 @@
+/* Copyright 2021 Daniel Perrett
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+#include "pdl.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_wrapper(
+ MY_FESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
+ KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
+ MY_SBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
+ ),
+ [_PROXIM] = LAYOUT_wrapper(
+ MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
+ KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
+ MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
+ ),
+ [_NAVIGN] = LAYOUT_wrapper(
+ _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_PUNCTN] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NUMBRS] = LAYOUT_wrapper(
+ _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_CODING] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_FUNCTN] = LAYOUT_wrapper(
+ _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
+ _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
+ _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/foostan/cornelius/keymaps/pdl/readme.md b/keyboards/foostan/cornelius/keymaps/pdl/readme.md
new file mode 100644
index 000000000000..59bb03d18bb8
--- /dev/null
+++ b/keyboards/foostan/cornelius/keymaps/pdl/readme.md
@@ -0,0 +1 @@
+# A keymap for cornelius used by pdl
diff --git a/keyboards/handwired/reclined/config.h b/keyboards/handwired/reclined/config.h
new file mode 100644
index 000000000000..6f8159a2368f
--- /dev/null
+++ b/keyboards/handwired/reclined/config.h
@@ -0,0 +1,65 @@
+/*
+Copyright 2018 Daniel Perrett
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+
+/* 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
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+
+/*
+ * 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
diff --git a/keyboards/handwired/reclined/info.json b/keyboards/handwired/reclined/info.json
new file mode 100644
index 000000000000..1398a9a2df6d
--- /dev/null
+++ b/keyboards/handwired/reclined/info.json
@@ -0,0 +1,87 @@
+{
+ "manufacturer": "pdl",
+ "keyboard_name": "handwired/reclined",
+ "maintainer": "qmk",
+ "bootloader": "atmel-dfu",
+ "debounce": 5,
+ "diode_direction": "ROW2COL",
+ "features": {
+ "audio": false,
+ "backlight": false,
+ "bootmagic": false,
+ "command": true,
+ "console": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": false,
+ "sleep_led": false,
+ "unicode": false
+ },
+ "matrix_pins": {
+ "cols": ["B2", "F4", "B3", "F5", "B1", "F6", "D4", "D7", "D0", "E6", "D1", "B4"],
+ "rows": ["D3", "C6", "B6", "B5"]
+ },
+ "processor": "atmega32u4",
+ "usb": {
+ "device_ver": "0x0001",
+ "pid": "0x0000",
+ "vid": "0xFEED"
+ },
+ "community_layouts": ["ortho_4x12"],
+ "layouts": {
+ "LAYOUT_ortho_4x12": {
+ "c_macro": true,
+ "filename": "keyboards/handwired/reclined/reclined.h",
+ "layout": [
+ { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
+ { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
+ { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
+ { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
+ { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 },
+ { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 },
+ { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 },
+ { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 },
+ { "label": "k08", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 },
+ { "label": "k09", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 },
+ { "label": "k0a", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 },
+ { "label": "k0b", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 },
+ { "label": "k10", "matrix": [1, 0], "w": 1, "x": 0, "y": 1 },
+ { "label": "k11", "matrix": [1, 1], "w": 1, "x": 1, "y": 1 },
+ { "label": "k12", "matrix": [1, 2], "w": 1, "x": 2, "y": 1 },
+ { "label": "k13", "matrix": [1, 3], "w": 1, "x": 3, "y": 1 },
+ { "label": "k14", "matrix": [1, 4], "w": 1, "x": 4, "y": 1 },
+ { "label": "k15", "matrix": [1, 5], "w": 1, "x": 5, "y": 1 },
+ { "label": "k16", "matrix": [1, 6], "w": 1, "x": 6, "y": 1 },
+ { "label": "k17", "matrix": [1, 7], "w": 1, "x": 7, "y": 1 },
+ { "label": "k18", "matrix": [1, 8], "w": 1, "x": 8, "y": 1 },
+ { "label": "k19", "matrix": [1, 9], "w": 1, "x": 9, "y": 1 },
+ { "label": "k1a", "matrix": [1, 10], "w": 1, "x": 10, "y": 1 },
+ { "label": "k1b", "matrix": [1, 11], "w": 1, "x": 11, "y": 1 },
+ { "label": "k20", "matrix": [2, 0], "w": 1, "x": 0, "y": 2 },
+ { "label": "k21", "matrix": [2, 1], "w": 1, "x": 1, "y": 2 },
+ { "label": "k22", "matrix": [2, 2], "w": 1, "x": 2, "y": 2 },
+ { "label": "k23", "matrix": [2, 3], "w": 1, "x": 3, "y": 2 },
+ { "label": "k24", "matrix": [2, 4], "w": 1, "x": 4, "y": 2 },
+ { "label": "k25", "matrix": [2, 5], "w": 1, "x": 5, "y": 2 },
+ { "label": "k26", "matrix": [2, 6], "w": 1, "x": 6, "y": 2 },
+ { "label": "k27", "matrix": [2, 7], "w": 1, "x": 7, "y": 2 },
+ { "label": "k28", "matrix": [2, 8], "w": 1, "x": 8, "y": 2 },
+ { "label": "k29", "matrix": [2, 9], "w": 1, "x": 9, "y": 2 },
+ { "label": "k2a", "matrix": [2, 10], "w": 1, "x": 10, "y": 2 },
+ { "label": "k2b", "matrix": [2, 11], "w": 1, "x": 11, "y": 2 },
+ { "label": "k30", "matrix": [3, 0], "w": 1, "x": 0, "y": 3 },
+ { "label": "k31", "matrix": [3, 1], "w": 1, "x": 1, "y": 3 },
+ { "label": "k32", "matrix": [3, 2], "w": 1, "x": 2, "y": 3 },
+ { "label": "k33", "matrix": [3, 3], "w": 1, "x": 3, "y": 3 },
+ { "label": "k34", "matrix": [3, 4], "w": 1, "x": 4, "y": 3 },
+ { "label": "k35", "matrix": [3, 5], "w": 1, "x": 5, "y": 3 },
+ { "label": "k36", "matrix": [3, 6], "w": 1, "x": 6, "y": 3 },
+ { "label": "k37", "matrix": [3, 7], "w": 1, "x": 7, "y": 3 },
+ { "label": "k38", "matrix": [3, 8], "w": 1, "x": 8, "y": 3 },
+ { "label": "k39", "matrix": [3, 9], "w": 1, "x": 9, "y": 3 },
+ { "label": "k3a", "matrix": [3, 10], "w": 1, "x": 10, "y": 3 },
+ { "label": "k3b", "matrix": [3, 11], "w": 1, "x": 11, "y": 3 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/reclined/keymaps/default/keymap.c b/keyboards/handwired/reclined/keymaps/default/keymap.c
new file mode 100644
index 000000000000..d814d568c766
--- /dev/null
+++ b/keyboards/handwired/reclined/keymaps/default/keymap.c
@@ -0,0 +1,26 @@
+/* Copyright 2018 Daniel Perrett
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_ortho_4x12( /* Base */
+ 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_ESC, 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_LGUI, KC_LALT, RESET, KC_TAB, KC_SPC, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+};
+
diff --git a/keyboards/handwired/reclined/keymaps/default/readme.md b/keyboards/handwired/reclined/keymaps/default/readme.md
new file mode 100644
index 000000000000..3818217ad373
--- /dev/null
+++ b/keyboards/handwired/reclined/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for reclined
\ No newline at end of file
diff --git a/keyboards/handwired/reclined/keymaps/pdl/config.h b/keyboards/handwired/reclined/keymaps/pdl/config.h
new file mode 100644
index 000000000000..3a89a0a4d2d4
--- /dev/null
+++ b/keyboards/handwired/reclined/keymaps/pdl/config.h
@@ -0,0 +1,23 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+#define TAPPING_TERM 200
diff --git a/keyboards/handwired/reclined/keymaps/pdl/keymap.c b/keyboards/handwired/reclined/keymaps/pdl/keymap.c
new file mode 100644
index 000000000000..bb6976de9bb8
--- /dev/null
+++ b/keyboards/handwired/reclined/keymaps/pdl/keymap.c
@@ -0,0 +1,69 @@
+/*
+This is the keymap for the reclined keyboard
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2017 Art Ortenburger
+Copyright 2018 Daniel Perrett
+
+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 .
+*/
+
+#include QMK_KEYBOARD_H
+#include "pdl.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_wrapper(
+ KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
+ MY_SESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
+ MY_CBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_SQUO,
+ KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
+ ),
+ [_PROXIM] = LAYOUT_wrapper(
+ MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
+ KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
+ MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_SENT,
+ KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
+ ),
+ [_NAVIGN] = LAYOUT_wrapper(
+ _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_PUNCTN] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NUMBRS] = LAYOUT_wrapper(
+ _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_CODING] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_FUNCTN] = LAYOUT_wrapper(
+ _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
+ _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
+ _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/handwired/reclined/keymaps/pdl/rules.mk b/keyboards/handwired/reclined/keymaps/pdl/rules.mk
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/keyboards/handwired/reclined/readme.md b/keyboards/handwired/reclined/readme.md
new file mode 100644
index 000000000000..d7594798ef55
--- /dev/null
+++ b/keyboards/handwired/reclined/readme.md
@@ -0,0 +1,17 @@
+# reclined
+
+A custom staggered 40 percent keyboard split at 22.5 degrees.
+
+* Keyboard Maintainer: [pdl](https://github.com/pdl)
+* Hardware Supported: Just one device
+* Hardware Availability: None
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/reclined:default
+
+Flashing example for this keyboard:
+
+ make handwired/reclined: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).
diff --git a/keyboards/handwired/reclined/reclined.c b/keyboards/handwired/reclined/reclined.c
new file mode 100644
index 000000000000..ca6da9de6d1e
--- /dev/null
+++ b/keyboards/handwired/reclined/reclined.c
@@ -0,0 +1,16 @@
+/* Copyright 2018 Daniel Perrett
+ *
+ * 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 .
+ */
+#include "reclined.h"
\ No newline at end of file
diff --git a/keyboards/handwired/reclined/reclined.h b/keyboards/handwired/reclined/reclined.h
new file mode 100644
index 000000000000..9a665f3a9bdf
--- /dev/null
+++ b/keyboards/handwired/reclined/reclined.h
@@ -0,0 +1,35 @@
+/* Copyright 2018 Daniel Perrett
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+// This a shortcut to help you visually see your layout.
+// The following is an example using the Planck MIT layout
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+#define LAYOUT_ortho_4x12( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
+}
diff --git a/keyboards/handwired/reclined/rules.mk b/keyboards/handwired/reclined/rules.mk
new file mode 100644
index 000000000000..64e496d03021
--- /dev/null
+++ b/keyboards/handwired/reclined/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/lets_split/keymaps/pdl/config.h b/keyboards/lets_split/keymaps/pdl/config.h
new file mode 100644
index 000000000000..e79e132c64a8
--- /dev/null
+++ b/keyboards/lets_split/keymaps/pdl/config.h
@@ -0,0 +1,36 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2018 Daniel Perrett
+
+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 .
+*/
+
+#pragma once
+
+
+#define TAPPING_TERM 200
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+//#define MASTER_LEFT
+#define MASTER_RIGHT
+// #define EE_HANDS
diff --git a/keyboards/lets_split/keymaps/pdl/keymap.c b/keyboards/lets_split/keymaps/pdl/keymap.c
new file mode 100644
index 000000000000..b112e2270f7e
--- /dev/null
+++ b/keyboards/lets_split/keymaps/pdl/keymap.c
@@ -0,0 +1,69 @@
+/*
+This is the keymap for the keyboard
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2017 Art Ortenburger
+Copyright 2018 Daniel Perrett
+
+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 .
+*/
+
+#include QMK_KEYBOARD_H
+#include "pdl.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_wrapper(
+ KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
+ MY_SESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
+ MY_CBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_SQUO,
+ KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
+ ),
+ [_PROXIM] = LAYOUT_wrapper(
+ MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
+ KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
+ MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_SENT,
+ KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
+ ),
+ [_NAVIGN] = LAYOUT_wrapper(
+ _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_PUNCTN] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NUMBRS] = LAYOUT_wrapper(
+ _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_CODING] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_FUNCTN] = LAYOUT_wrapper(
+ _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
+ _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
+ _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/lets_split/keymaps/pdl/rules.mk b/keyboards/lets_split/keymaps/pdl/rules.mk
new file mode 100644
index 000000000000..ae71cbf49136
--- /dev/null
+++ b/keyboards/lets_split/keymaps/pdl/rules.mk
@@ -0,0 +1 @@
+USER_NAME = pdl
diff --git a/keyboards/orthodox/keymaps/pdl/config.h b/keyboards/orthodox/keymaps/pdl/config.h
new file mode 100644
index 000000000000..5fd46b41c653
--- /dev/null
+++ b/keyboards/orthodox/keymaps/pdl/config.h
@@ -0,0 +1,35 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2017 Art Ortenburger
+Copyright 2018 Daniel Perrett
+
+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 .
+*/
+
+#pragma once
+
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+// #define MASTER_LEFT
+// #define MASTER_RIGHT
+#define EE_HANDS
diff --git a/keyboards/orthodox/keymaps/pdl/keymap.c b/keyboards/orthodox/keymaps/pdl/keymap.c
new file mode 100644
index 000000000000..42b9e7e48542
--- /dev/null
+++ b/keyboards/orthodox/keymaps/pdl/keymap.c
@@ -0,0 +1,68 @@
+/*
+This is the keymap for the keyboard
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2017 Art Ortenburger
+
+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 .
+*/
+
+#include QMK_KEYBOARD_H
+#include "pdl.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_wrapper(
+ KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
+ MY_SESC, _________________QWERTY_L2_________________, KC_LALT, KC_LGUI, FUNCTN, MY_AMNU, _________________QWERTY_R2_________________, MY_SQUO,
+ MY_CBSL, _________________QWERTY_L3_________________, NAVIGN, KC_SPC, NUMBRS, NUMBRS, MY_SSPC, NAVIGN, _________________QWERTY_R3_________________, MY_CENT
+ ),
+
+ [_PROXIM] = LAYOUT_wrapper(
+ MY_SESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
+ KC_TAB, _________________PROXIM_L2_________________, KC_LALT, KC_LGUI, FUNCTN, MY_AMNU, _________________PROXIM_R2_________________, MY_SSCL,
+ MY_CBSL, _________________PROXIM_L3_________________, NAVIGN, KC_SPC, NUMBRS, NUMBRS, MY_SSPC, NAVIGN, _________________PROXIM_R3_________________, MY_CENT
+ ),
+
+ [_NAVIGN] = LAYOUT_wrapper(
+ _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_PUNCTN] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______
+ ),
+
+ [_NUMBRS] = LAYOUT_wrapper(
+ _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_CODING] = LAYOUT_wrapper(
+ _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______
+ ),
+
+ [_FUNCTN] = LAYOUT_wrapper(
+ _______, _________________FUNCTN_L1_________________, _________________FUNCTN_L1_________________, MY_CAD,
+ _______, _________________FUNCTN_L2_________________, _______, _______, _______, _______, _________________FUNCTN_L2_________________, KC_PSCR,
+ _______, _________________FUNCTN_L3_________________, _______, _______, _______, _______, _______, _______, _________________FUNCTN_L3_________________, _______
+ )
+};
+
diff --git a/keyboards/orthodox/keymaps/pdl/rules.mk b/keyboards/orthodox/keymaps/pdl/rules.mk
new file mode 100644
index 000000000000..ae71cbf49136
--- /dev/null
+++ b/keyboards/orthodox/keymaps/pdl/rules.mk
@@ -0,0 +1 @@
+USER_NAME = pdl
diff --git a/users/pdl/pdl.c b/users/pdl/pdl.c
new file mode 100644
index 000000000000..5b90a0b3102d
--- /dev/null
+++ b/users/pdl/pdl.c
@@ -0,0 +1,216 @@
+/*
+Copyright 2018-2021 Daniel Perrett
+
+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 .
+*/
+
+#include "pdl.h"
+
+// unshifted
+//
+// regardless of current mods, send this character in an unshifted state
+
+__attribute__ ((weak))
+bool unshifted (uint16_t keycode, keyrecord_t *record) {
+ uint8_t mods;
+
+ if (record->event.pressed) {
+ mods = keyboard_report->mods & EITHER_SHIFT;
+
+ if (mods) {
+ unregister_mods(mods);
+ register_code(keycode);
+ register_mods(mods);
+ } else {
+ register_code(keycode);
+ }
+
+ return false;
+ } else {
+ return true;
+ }
+}
+
+/*
+ * update_punctn_coding_layer_state
+ *
+ * Check NAVIGN and NUMBRS layers. If one is activated, also activate PUNCTN. If both are activated, also activate CODING.
+ */
+
+__attribute__ ((weak))
+uint32_t update_punctn_coding_layer_state(uint32_t state) {
+ uint32_t maskEither = (1UL << _NAVIGN) | (1UL << _NUMBRS);
+ uint32_t maskPunctn = 1UL << _PUNCTN;
+ uint32_t maskCoding = 1UL << _CODING;
+
+#ifdef COMBO_PDL
+ return (
+ (state & maskEither)
+ ? (state | maskPunctn) & ~maskCoding // either => punctn
+ : (state & ~maskCoding) & ~maskPunctn // neither => neither
+ );
+#endif
+
+ return (
+ (state & maskEither)
+ ? (state & maskEither) == maskEither
+ ? (state & ~maskPunctn) | maskCoding // both => coding
+ : (state | maskPunctn) & ~maskCoding // either => punctn
+ : (state & ~maskCoding) & ~maskPunctn // neither => neither
+ );
+}
+
+__attribute__ ((weak))
+uint32_t layer_state_set_user(uint32_t state) {
+ return update_punctn_coding_layer_state(state);
+}
+
+__attribute__ ((weak))
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
+ if (record->event.pressed) {
+ // ensure that the toggled layer is switched off by a single tap
+ layer_off(keycode & 0xFF);
+ }
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case PROXIM:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_PROXIM);
+ }
+ return false;
+ break;
+ // KC_LBRC, KC_NUHS, KC_GRV, KC_RBRC [#`]
+ // These four keys are unshifted in the UK layout and should be sent as such.
+ case KU_LBRC:
+ return unshifted(KC_LBRC, record);
+ case KU_NUHS:
+ return unshifted(KC_NUHS, record);
+ case KU_GRV:
+ return unshifted(KC_GRV, record);
+ case KU_RBRC:
+ return unshifted(KC_RBRC, record);
+ case KC_ESC:
+ if (!record->event.pressed) {
+ layer_off(_NUMBRS);
+ layer_off(_NAVIGN);
+ layer_off(_PUNCTN);
+ layer_off(_CODING);
+ }
+ return true;
+ }
+ return true;
+}
+
+#ifdef COMBO_PDL
+enum combos {
+ VCOMBO_PU,
+ VCOMBO_NU,
+ VCOMBO_EU,
+ VCOMBO_IU,
+ VCOMBO_LU,
+ VCOMBO_PD,
+ VCOMBO_ND,
+ VCOMBO_ED,
+ VCOMBO_ID,
+ VCOMBO_LD,
+ HCOMBO_JR,
+ HCOMBO_UR,
+ HCOMBO_PR,
+ HCOMBO_MR,
+ HCOMBO_HR,
+ XCOMBO_LEFT,
+ XCOMBO_RIGHT,
+ XCOMBO_UP,
+ XCOMBO_DOWN,
+ XCOMBO_ENTER,
+ XCOMBO_DEL,
+ XCOMBO_BKSP,
+ XCOMBO_MINS,
+ XCOMBO_TAB,
+ XCOMBO_UNDO,
+ XCOMBO_REDO,
+ XCOMBO_PGUP,
+ XCOMBO_PGDN
+};
+
+const uint16_t PROGMEM vcombo_pu[] = {KC_J, KC_P, COMBO_END};
+const uint16_t PROGMEM vcombo_nu[] = {KC_Y, KC_N, COMBO_END};
+const uint16_t PROGMEM vcombo_eu[] = {KC_O, KC_E, COMBO_END};
+const uint16_t PROGMEM vcombo_iu[] = {KC_U, KC_I, COMBO_END};
+const uint16_t PROGMEM vcombo_lu[] = {KC_QUOT, KC_L, COMBO_END};
+const uint16_t PROGMEM vcombo_pd[] = {KC_M, KC_P, COMBO_END};
+const uint16_t PROGMEM vcombo_nd[] = {KC_H, KC_N, COMBO_END};
+const uint16_t PROGMEM vcombo_ed[] = {KC_COMM, KC_E, COMBO_END};
+const uint16_t PROGMEM vcombo_id[] = {KC_DOT, KC_I, COMBO_END};
+const uint16_t PROGMEM vcombo_ld[] = {KC_SLSH, KC_L, COMBO_END};
+const uint16_t PROGMEM hcombo_jr[] = {KC_J, KC_Y, COMBO_END};
+const uint16_t PROGMEM hcombo_ur[] = {KC_QUOT, KC_U, COMBO_END};
+const uint16_t PROGMEM hcombo_pr[] = {KC_P, KC_N, COMBO_END};
+const uint16_t PROGMEM hcombo_mr[] = {KC_M, KC_H, COMBO_END};
+const uint16_t PROGMEM hcombo_hr[] = {KC_COMM, KC_H, COMBO_END};
+
+const uint16_t PROGMEM xcombo_left[] = {KC_K, KC_P, COMBO_END};
+const uint16_t PROGMEM xcombo_right[] = {KC_M, KC_G, COMBO_END};
+const uint16_t PROGMEM xcombo_up[] = {KC_B, KC_J, COMBO_END};
+const uint16_t PROGMEM xcombo_down[] = {KC_K, KC_M, COMBO_END};
+const uint16_t PROGMEM xcombo_enter[] = {KC_G, KC_P, COMBO_END};
+const uint16_t PROGMEM xcombo_del[] = {KC_M, KC_B, COMBO_END};
+const uint16_t PROGMEM xcombo_bksp[] = {KC_K, KC_J, COMBO_END};
+const uint16_t PROGMEM xcombo_mins[] = {KC_V, KC_H, COMBO_END};
+const uint16_t PROGMEM xcombo_tab[] = {KC_V, KC_K, COMBO_END};
+const uint16_t PROGMEM xcombo_undo[] = {KC_V, KC_J, COMBO_END};
+const uint16_t PROGMEM xcombo_redo[] = {KC_B, KC_H, COMBO_END};
+const uint16_t PROGMEM xcombo_pgup[] = {KC_G, KC_B, COMBO_END};
+const uint16_t PROGMEM xcombo_pgdn[] = {KC_G, KC_K, COMBO_END};
+
+combo_t key_combos[COMBO_COUNT] = {
+ [VCOMBO_PU] = COMBO(vcombo_pu, KC_CIRC),
+ [VCOMBO_NU] = COMBO(vcombo_nu, KC_LBRC),
+ [VCOMBO_EU] = COMBO(vcombo_eu, LSFT(KC_9)),
+ [VCOMBO_IU] = COMBO(vcombo_iu, LSFT(KC_0)),
+ [VCOMBO_LU] = COMBO(vcombo_lu, KC_RBRC),
+ [VCOMBO_PD] = COMBO(vcombo_pd, LSFT(KC_7)),
+ [VCOMBO_ND] = COMBO(vcombo_nd, KC_EQL),
+ [VCOMBO_ED] = COMBO(vcombo_ed, KC_MINS),
+ [VCOMBO_ID] = COMBO(vcombo_id, LSFT(KC_1)),
+ [VCOMBO_LD] = COMBO(vcombo_ld, LSFT(KC_5)),
+ [HCOMBO_JR] = COMBO(hcombo_jr, KC_GRV),
+ [HCOMBO_UR] = COMBO(hcombo_ur, LSFT(KC_2)),
+ [HCOMBO_PR] = COMBO(hcombo_pr, LSFT(KC_8)),
+ [HCOMBO_MR] = COMBO(hcombo_mr, KC_NUHS),
+ [HCOMBO_HR] = COMBO(hcombo_hr, KC_NUBS),
+
+ [XCOMBO_LEFT] = COMBO(xcombo_left, KC_LEFT),
+ [XCOMBO_RIGHT] = COMBO(xcombo_right, KC_RGHT),
+ [XCOMBO_UP] = COMBO(xcombo_up, KC_UP),
+ [XCOMBO_DOWN] = COMBO(xcombo_down, KC_DOWN),
+ [XCOMBO_ENTER] = COMBO(xcombo_enter, KC_ENT),
+ [XCOMBO_DEL] = COMBO(xcombo_del, KC_DEL),
+ [XCOMBO_BKSP] = COMBO(xcombo_bksp, KC_BSPC),
+ [XCOMBO_MINS] = COMBO(xcombo_mins, KC_MINS),
+ [XCOMBO_TAB] = COMBO(xcombo_tab, KC_TAB),
+ [XCOMBO_UNDO] = COMBO(xcombo_undo, LCTL(KC_Y)),
+ [XCOMBO_REDO] = COMBO(xcombo_redo, LCTL(KC_Z)),
+ [XCOMBO_PGUP] = COMBO(xcombo_pgup, KC_PGUP),
+ [XCOMBO_PGDN] = COMBO(xcombo_pgdn, KC_PGDN)
+};
+
+#endif
diff --git a/users/pdl/pdl.h b/users/pdl/pdl.h
new file mode 100644
index 000000000000..a976c714740d
--- /dev/null
+++ b/users/pdl/pdl.h
@@ -0,0 +1,135 @@
+/*
+Copyright 2018-2021 Daniel Perrett
+
+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 .
+*/
+
+#pragma once
+
+#include "quantum.h"
+
+enum userspace_layer_codes {
+ QWERTY = SAFE_RANGE,
+ PROXIM,
+ PUNCTN,
+ CODING,
+ KU_LBRC,
+ KU_NUHS,
+ KU_GRV,
+ KU_RBRC,
+ NEW_SAFE_RANGE
+};
+
+enum userspace_layers {
+ _PROXIM,
+ _QWERTY,
+ _NUMBRS,
+ _NAVIGN,
+ _PUNCTN,
+ _CODING,
+ _FUNCTN
+};
+
+#define MY_FESC LT(_FUNCTN, KC_ESC)
+#define MY_SSPC MT(MOD_RSFT, KC_SPC)
+#define MY_SESC MT(MOD_LSFT, KC_ESC)
+#define MY_SBSL MT(MOD_LSFT, KC_NUBS)
+#define MY_CBSL MT(MOD_LCTL, KC_NUBS)
+#define MY_SSCL MT(MOD_RSFT, KC_SCLN)
+#define MY_ASCL MT(MOD_LALT, KC_SCLN)
+#define MY_SQUO MT(MOD_RSFT, KC_QUOT)
+#define MY_CENT MT(MOD_RCTL, KC_ENT)
+#define MY_SENT MT(MOD_RSFT, KC_ENT)
+#define MY_AMNU MT(MOD_RALT, KC_APP)
+
+#define MY_TILD S(KC_NUHS)
+#define MY_SEQL MT(MOD_RALT, KC_PEQL)
+#define MY_CMIN MT(MOD_RALT, KC_MINS)
+#define MY_ASLS MT(MOD_RALT, KC_SLSH)
+
+#define MY_UNDO LCTL(KC_Z)
+#define MY_CUT LCTL(KC_X)
+#define MY_COPY LCTL(KC_C)
+#define MY_PASTE LCTL(KC_V)
+
+#define MY_AF4 LALT(KC_F4)
+#define MY_CF4 LCTL(KC_F4)
+#define MY_CF5 LCTL(KC_F5)
+#define MY_CAD LCTL(LALT(KC_DEL))
+
+#define NUMBRS TT(_NUMBRS)
+#define NAVIGN TT(_NAVIGN)
+#define FUNCTN TT(_FUNCTN)
+
+#define EITHER_SHIFT (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))
+
+// Cannot redefine this here
+// #define TAPPING_TOGGLE 2
+
+// Taken from drashna:
+// Since our quirky block definitions are basically a list of comma separated
+// arguments, we need a wrapper in order for these definitions to be
+// expanded before being used as arguments to the LAYOUT_xxx macro.
+#if !defined(LAYOUT)
+#if defined(LAYOUT_ortho_4x12)
+#define LAYOUT_wrapper_ortho_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__)
+#define LAYOUT LAYOUT_ortho_4x12
+#elif defined(KEYMAP)
+#define LAYOUT KEYMAP
+#endif
+#endif
+#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
+
+#define ___________________________________________ _______, _______, _______, _______, _______
+
+#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
+#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
+#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
+
+#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
+#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
+#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
+
+#define _________________PROXIM_L1_________________ KC_Q, KC_W, KC_F, KC_R, KC_B
+#define _________________PROXIM_L2_________________ KC_A, KC_S, KC_D, KC_T, KC_G
+#define _________________PROXIM_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_K
+
+#define _________________PROXIM_R1_________________ KC_J, KC_Y, KC_O, KC_U, KC_QUOT
+#define _________________PROXIM_R2_________________ KC_P, KC_N, KC_E, KC_I, KC_L
+#define _________________PROXIM_R3_________________ KC_M, KC_H, KC_COMM, KC_DOT, KC_SLASH
+
+#define _________________PUNCTN_R1_________________ KC_NUBS, KC_NUHS, KC_LPRN, KC_RPRN, _______
+#define _________________PUNCTN_R2_________________ KC_GRV, KC_EQL, KC_MINS, KC_PLUS, KC_SLSH
+#define _________________PUNCTN_R3_________________ KC_LBRC, KC_RBRC, _______, _______, _______
+
+#define _________________CODING_R1_________________ KU_GRV, KC_PERC, KC_DLR, KC_AT, _______
+#define _________________CODING_R2_________________ KC_CIRC, KC_UNDS, MY_TILD, KC_AMPR, KU_NUHS
+#define _________________CODING_R3_________________ KU_LBRC, KU_RBRC, _______, _______, _______
+
+#define _________________NAVIGN_L1_________________ KC_DEL, KC_PGUP, KC_UP, KC_PGDN, KC_BSPC
+#define _________________NAVIGN_L2_________________ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
+#define _________________NAVIGN_L3_________________ MY_UNDO, MY_CUT, MY_COPY, MY_PASTE, KC_ENT
+
+#define _________________NUMBRS_L1_________________ KC_1, KC_2, KC_3, KC_4, KC_5
+#define _________________NUMBRS_L2_________________ KC_6, KC_7, KC_8, KC_9, KC_0
+#define _________________NUMBRS_L3_________________ KC_UNDO, KC_MINS, KC_EQL, KC_PDOT, KC_ENT
+
+#define _________________FUNCTN_L1_________________ KC_ESC, KC_F1, KC_F2, KC_F3, MY_AF4
+#define _________________FUNCTN_L2_________________ KC_APP, KC_F4, KC_F5, KC_F6, MY_CF5
+#define _________________FUNCTN_L3_________________ RESET, KC_F7, KC_F8, KC_F9, MY_CF4
+
+#define _________________FUNCTN_R1_________________ KC_VOLU, KC_F10, KC_F11, KC_F12, KC_INS
+#define _________________FUNCTN_R2_________________ KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT
+#define _________________FUNCTN_R3_________________ KC_MUTE, KC_PAUS, QWERTY, PROXIM, DEBUG
diff --git a/users/pdl/rules.mk b/users/pdl/rules.mk
new file mode 100644
index 000000000000..ff681299e4e9
--- /dev/null
+++ b/users/pdl/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
\ No newline at end of file
From 8cc86490aac59a93ece62229cc93097a17420fa5 Mon Sep 17 00:00:00 2001
From: sol <1731279+s-ol@users.noreply.github.com>
Date: Wed, 13 Apr 2022 07:46:12 +0200
Subject: [PATCH 135/221] [Keyboard] Add s-ol/0xC.pad (#16057)
* [Keyboard] Add s_ol/0xc_pad
* [Keyboard] add factory testing RGB_MATRIX pattern
Co-authored-by: s-ol
---
keyboards/s_ol/0xc_pad/0xc_pad.c | 30 ++++++++++++
keyboards/s_ol/0xc_pad/0xc_pad.h | 36 ++++++++++++++
keyboards/s_ol/0xc_pad/config.h | 49 +++++++++++++++++++
keyboards/s_ol/0xc_pad/info.json | 33 +++++++++++++
.../s_ol/0xc_pad/keymaps/default/config.h | 18 +++++++
.../s_ol/0xc_pad/keymaps/default/keymap.c | 25 ++++++++++
.../s_ol/0xc_pad/keymaps/default/readme.md | 5 ++
.../keymaps/default/rgb_matrix_user.inc | 41 ++++++++++++++++
.../s_ol/0xc_pad/keymaps/default/rules.mk | 1 +
keyboards/s_ol/0xc_pad/readme.md | 24 +++++++++
keyboards/s_ol/0xc_pad/rules.mk | 22 +++++++++
keyboards/s_ol/info.json | 4 ++
12 files changed, 288 insertions(+)
create mode 100644 keyboards/s_ol/0xc_pad/0xc_pad.c
create mode 100644 keyboards/s_ol/0xc_pad/0xc_pad.h
create mode 100644 keyboards/s_ol/0xc_pad/config.h
create mode 100644 keyboards/s_ol/0xc_pad/info.json
create mode 100644 keyboards/s_ol/0xc_pad/keymaps/default/config.h
create mode 100644 keyboards/s_ol/0xc_pad/keymaps/default/keymap.c
create mode 100644 keyboards/s_ol/0xc_pad/keymaps/default/readme.md
create mode 100644 keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc
create mode 100644 keyboards/s_ol/0xc_pad/keymaps/default/rules.mk
create mode 100644 keyboards/s_ol/0xc_pad/readme.md
create mode 100644 keyboards/s_ol/0xc_pad/rules.mk
create mode 100644 keyboards/s_ol/info.json
diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.c b/keyboards/s_ol/0xc_pad/0xc_pad.c
new file mode 100644
index 000000000000..b8dd2976ef70
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/0xc_pad.c
@@ -0,0 +1,30 @@
+/* Copyright 2021 s-ol
+ *
+ * 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 .
+ */
+#include "0xc_pad.h"
+
+#ifdef RGB_MATRIX_ENABLE
+# define Q(...) __VA_ARGS__
+
+led_config_t g_led_config = {
+ // indices
+ LAYOUT(0, 6, 1, 5, 7, 2, 4, 8, 11, 3, 9, 10),
+ // phys position
+ LED_LAYOUT(Q({96, 110}), Q({128, 110}), Q({80, 83}), Q({112, 83}), Q({144, 83}), Q({64, 55}), Q({96, 55}), Q({128, 55}), Q({160, 55}), Q({80, 28}), Q({112, 28}), Q({144, 28})),
+ // flags
+ LED_LAYOUT(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4),
+};
+# undef Q
+#endif
diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.h b/keyboards/s_ol/0xc_pad/0xc_pad.h
new file mode 100644
index 000000000000..52c9c3adfda4
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/0xc_pad.h
@@ -0,0 +1,36 @@
+/* Copyright 2021 s-ol
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k01, k05, \
+ k02, k06, k10, \
+ k03, k07, k11, k15, \
+ k08, k12, k16 \
+) { \
+ { k01, k05, KC_NO, KC_NO }, \
+ { k02, k06, k10, KC_NO }, \
+ { k03, k07, k11, k15 }, \
+ { KC_NO, k08, k12, k16 } \
+}
+
+#define LED_LAYOUT( \
+ \
+ k01, k05, k02, k06, k10, k03, k07, k11, k15, k08, k12, k16) \
+ \
+ { k01, k02, k03, k08, k07, k06, k05, k10, k11, k12, k16, k15, }
diff --git a/keyboards/s_ol/0xc_pad/config.h b/keyboards/s_ol/0xc_pad/config.h
new file mode 100644
index 000000000000..4260c7a07dc6
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/config.h
@@ -0,0 +1,49 @@
+/* Copyright 2021 s-ol
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN C7
+#define DRIVER_LED_TOTAL 12
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
+#define RGB_MATRIX_CENTER \
+ { 112, 63 }
+#define RGB_MATRIX_KEYPRESSES
+#define RGB_MATRIX_FRAMEBUFFER
+
+#define ENABLE_RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_BAND_SAT
+#define ENABLE_RGB_MATRIX_BAND_VAL
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+
+#define ENABLE_RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_HUE_BREATHING
+#define ENABLE_RGB_MATRIX_HUE_WAVE
+
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#define ENABLE_RGB_MATRIX_SPLASH
diff --git a/keyboards/s_ol/0xc_pad/info.json b/keyboards/s_ol/0xc_pad/info.json
new file mode 100644
index 000000000000..4462b983ecc0
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/info.json
@@ -0,0 +1,33 @@
+{
+ "keyboard_name": "0xC.pad",
+ "url": "https://s-ol.nu/0xC.pad",
+ "debounce": 5,
+ "diode_direction": "ROW2COL",
+ "matrix_pins": {
+ "rows": ["B7", "B6", "B5", "B4"],
+ "cols": ["D4", "D3", "D2", "D1"]
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":0.5, "y":1},
+ {"x":1.5, "y":1},
+ {"x":2.5, "y":1},
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+ {"x":0.5, "y":3},
+ {"x":1.5, "y":3},
+ {"x":2.5, "y":3}
+ ]
+ }
+ },
+ "usb": {
+ "vid": "0x732D",
+ "pid": "0x0C70",
+ "device_version": "0.0.1"
+ }
+}
diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/config.h b/keyboards/s_ol/0xc_pad/keymaps/default/config.h
new file mode 100644
index 000000000000..194cb5a20051
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/keymaps/default/config.h
@@ -0,0 +1,18 @@
+/* Copyright 2022 s-ol
+ *
+ * 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 .
+ */
+#pragma once
+
+#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CUSTOM_RGB_TESTING
diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c b/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c
new file mode 100644
index 000000000000..562d8950712d
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c
@@ -0,0 +1,25 @@
+/* Copyright 2021 s-ol
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ RGB_RMOD, RGB_MOD,
+ KC_CUT , KC_COPY, KC_PSTE,
+ KC_PGUP, KC_PGDN, KC_VOLU, KC_VOLD,
+ KC_1 , KC_2 , KC_3
+ ),
+};
diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/readme.md b/keyboards/s_ol/0xc_pad/keymaps/default/readme.md
new file mode 100644
index 000000000000..fb71b2bf2097
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/keymaps/default/readme.md
@@ -0,0 +1,5 @@
+![0xC.pad Layout Image](https://i.imgur.com/pk4G33B.png)
+
+# Default 0xC.pad Layout
+
+This is a simple default layout to get you started with the 0xC.pad.
diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc b/keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc
new file mode 100644
index 000000000000..8acb4934bc44
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/keymaps/default/rgb_matrix_user.inc
@@ -0,0 +1,41 @@
+/* Copyright 2022 s-ol
+ *
+ * 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 .
+ */
+RGB_MATRIX_EFFECT(RGB_TESTING)
+#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+static HSV RGB_TESTING_math(HSV hsv, uint8_t i, uint8_t time) {
+ hsv.v = 255;
+ hsv.s = 255;
+
+ uint8_t t = (time + i * 6) % 256;
+ switch (t / (256 / 4)) {
+ case 0:
+ hsv.h = 0;
+ break;
+ case 1:
+ hsv.h = 85;
+ break;
+ case 2:
+ hsv.h = 170;
+ break;
+ default:
+ hsv.s = 0;
+ }
+ return hsv;
+}
+
+static bool RGB_TESTING(effect_params_t* params) { return effect_runner_i(params, &RGB_TESTING_math); }
+#endif
diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/rules.mk b/keyboards/s_ol/0xc_pad/keymaps/default/rules.mk
new file mode 100644
index 000000000000..6245023e803f
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/keymaps/default/rules.mk
@@ -0,0 +1 @@
+RGB_MATRIX_CUSTOM_USER = yes
diff --git a/keyboards/s_ol/0xc_pad/readme.md b/keyboards/s_ol/0xc_pad/readme.md
new file mode 100644
index 000000000000..8ca3f78d1a4d
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/readme.md
@@ -0,0 +1,24 @@
+# 0xC.pad
+
+![0xC.pad](https://i.imgur.com/YXMKy4u.png)
+
+A 12-key, RGB-backlit hexagonal macropad.
+
+* Keyboard Maintainer: [s-ol](https://github.com/s-ol)
+* Hardware Supported: "hex12pad r0", 0xC.pad r1
+* Hardware Availability: [IC form](https://s-ol.nu/0xC.pad)
+
+To flash the example keymap for this macropad
+(after setting up your build environment):
+
+ make s_ol/0xc_pad:default:flash
+
+Before flashing, the macropad must be brought into DFU mode by one of the
+following means:
+- holding down the top-left key (next to the USB port) while plugging it in
+- bridging the two pads labeled `BOOT` on the back of the PCB with a metallic
+ object (tweezers, paperclip. wire)
+- putting the `RESET` keycode in your keymap and pressing the corresponding key
+
+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).
diff --git a/keyboards/s_ol/0xc_pad/rules.mk b/keyboards/s_ol/0xc_pad/rules.mk
new file mode 100644
index 000000000000..1322621d85a0
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+LTO_ENABLE = yes
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+WS2812_DRIVER = bitbang
diff --git a/keyboards/s_ol/info.json b/keyboards/s_ol/info.json
new file mode 100644
index 000000000000..3c1c21d5347c
--- /dev/null
+++ b/keyboards/s_ol/info.json
@@ -0,0 +1,4 @@
+{
+ "manufacturer": "s-ol",
+ "maintainer": "s-ol"
+}
From e1c777a1c993efa6c739fde71f995ee386456237 Mon Sep 17 00:00:00 2001
From: Nostril
Date: Tue, 12 Apr 2022 22:50:38 -0700
Subject: [PATCH 136/221] [Keyboard] Add Synth Labs Solo keyboard (#16103)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/synthlabs/solo/config.h | 64 ++++++++++++++++
keyboards/synthlabs/solo/info.json | 43 +++++++++++
.../synthlabs/solo/keymaps/default/keymap.c | 12 +++
.../synthlabs/solo/keymaps/default/readme.md | 3 +
.../synthlabs/solo/keymaps/gamepad/keymap.c | 35 +++++++++
.../synthlabs/solo/keymaps/gamepad/readme.md | 3 +
.../synthlabs/solo/keymaps/gamepad/rules.mk | 2 +
keyboards/synthlabs/solo/keymaps/via/keymap.c | 74 +++++++++++++++++++
keyboards/synthlabs/solo/keymaps/via/rules.mk | 1 +
keyboards/synthlabs/solo/readme.md | 28 +++++++
keyboards/synthlabs/solo/rules.mk | 13 ++++
keyboards/synthlabs/solo/solo.c | 18 +++++
keyboards/synthlabs/solo/solo.h | 41 ++++++++++
13 files changed, 337 insertions(+)
create mode 100644 keyboards/synthlabs/solo/config.h
create mode 100644 keyboards/synthlabs/solo/info.json
create mode 100644 keyboards/synthlabs/solo/keymaps/default/keymap.c
create mode 100644 keyboards/synthlabs/solo/keymaps/default/readme.md
create mode 100644 keyboards/synthlabs/solo/keymaps/gamepad/keymap.c
create mode 100644 keyboards/synthlabs/solo/keymaps/gamepad/readme.md
create mode 100644 keyboards/synthlabs/solo/keymaps/gamepad/rules.mk
create mode 100644 keyboards/synthlabs/solo/keymaps/via/keymap.c
create mode 100644 keyboards/synthlabs/solo/keymaps/via/rules.mk
create mode 100644 keyboards/synthlabs/solo/readme.md
create mode 100644 keyboards/synthlabs/solo/rules.mk
create mode 100644 keyboards/synthlabs/solo/solo.c
create mode 100644 keyboards/synthlabs/solo/solo.h
diff --git a/keyboards/synthlabs/solo/config.h b/keyboards/synthlabs/solo/config.h
new file mode 100644
index 000000000000..02fbd7abe02f
--- /dev/null
+++ b/keyboards/synthlabs/solo/config.h
@@ -0,0 +1,64 @@
+// Copyright 2022 Aaron Hong (@hongaaronc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define MANUFACTURER Synth Labs
+#define PRODUCT Solo
+
+#define ENCODERS 1
+#define ENCODER_RESOLUTION 4
+#define ENCODERS_PAD_A { B2 }
+#define ENCODERS_PAD_B { B3 }
+#define ENCODERS_CW_KEY { { 2, 1 } }
+#define ENCODERS_CCW_KEY { { 0, 1 } }
+
+/* key matrix size */
+#define MATRIX_ROWS 3
+#define MATRIX_COLS 7
+
+#define QMK_KEYS_PER_SCAN 17
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+
+#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+#define BOOTMAGIC_LITE_ROW 1
+#define BOOTMAGIC_LITE_COLUMN 1
+
+#define JOYSTICK_BUTTON_COUNT 8
+#define JOYSTICK_AXES_COUNT 1
+#define JOYSTICK_AXES_RESOLUTION 16
diff --git a/keyboards/synthlabs/solo/info.json b/keyboards/synthlabs/solo/info.json
new file mode 100644
index 000000000000..18a144a8b38c
--- /dev/null
+++ b/keyboards/synthlabs/solo/info.json
@@ -0,0 +1,43 @@
+{
+ "keyboard_name": "Synth Labs Solo",
+ "url": "http://solo.synthlabs.io",
+ "maintainer": "hongaaronc",
+ "bootloader": "atmel-dfu",
+ "processor": "atmega32u4",
+ "debounce": 5,
+ "matrix_pins": {
+ "direct": [
+ ["C6", "D6", "B5", "B4", "D7", "B6", "D4"],
+ [null, "B7", null, null, null, null, null],
+ ["F0", "F7", "F4", "F5", "F6", "F1", "C7"]
+ ]
+ },
+ "usb": {
+ "vid": "0x534E",
+ "pid": "0x3031",
+ "device_ver": "0x0001"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"P2 1", "x":3, "y":0, "w":0.5, "h":1.5, "matrix":[0,0]},
+ {"label":"P1 2", "x":3.5, "y":0, "w":0.5, "h":1.5, "matrix":[0,1]},
+ {"label":"P2 3", "x":4, "y":0, "w":0.5, "h":1.5, "matrix":[0,2]},
+ {"label":"P1 4", "x":4.5, "y":0, "w":0.5, "h":1.5, "matrix":[0,3]},
+ {"label":"P2 5", "x":5, "y":0, "w":0.5, "h":1.5, "matrix":[0,4]},
+ {"label":"P1 6", "x":5.5, "y":0, "w":0.5, "h":1.5, "matrix":[0,5]},
+ {"label":"P2 7", "x":6, "y":0, "w":0.5, "h":1.5, "matrix":[0,6]},
+ {"label":"Knob Press", "x":0.5, "y":1, "w":1.5, "h":1.5, "matrix":[1,1]},
+ {"label":"Knob CCW", "x":0, "y":1.25, "w":0.5, "matrix":[1,0]},
+ {"label":"Knob CW", "x":2, "y":1.25, "w":0.5, "matrix":[1,2]},
+ {"label":"P1 1", "x":3, "y":2, "w":0.5, "h":1.5, "matrix":[2,0]},
+ {"label":"P2 2", "x":3.5, "y":2, "w":0.5, "h":1.5, "matrix":[2,1]},
+ {"label":"P1 3", "x":4, "y":2, "w":0.5, "h":1.5, "matrix":[2,2]},
+ {"label":"P2 4", "x":4.5, "y":2, "w":0.5, "h":1.5, "matrix":[2,3]},
+ {"label":"P1 5", "x":5, "y":2, "w":0.5, "h":1.5, "matrix":[2,4]},
+ {"label":"P2 6", "x":5.5, "y":2, "w":0.5, "h":1.5, "matrix":[2,5]},
+ {"label":"P1 7", "x":6, "y":2, "w":0.5, "h":1.5, "matrix":[2,6]}
+ ]
+ }
+ }
+}
diff --git a/keyboards/synthlabs/solo/keymaps/default/keymap.c b/keyboards/synthlabs/solo/keymaps/default/keymap.c
new file mode 100644
index 000000000000..fa54111fe86b
--- /dev/null
+++ b/keyboards/synthlabs/solo/keymaps/default/keymap.c
@@ -0,0 +1,12 @@
+// Copyright 2022 Aaron Hong (@hongaaronc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN,
+ _______, KC_MUTE, _______,
+ KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN
+ )
+};
diff --git a/keyboards/synthlabs/solo/keymaps/default/readme.md b/keyboards/synthlabs/solo/keymaps/default/readme.md
new file mode 100644
index 000000000000..625bd392b68a
--- /dev/null
+++ b/keyboards/synthlabs/solo/keymaps/default/readme.md
@@ -0,0 +1,3 @@
+# Default Synth Labs Solo Layout
+
+This keymap is intended for usage as a macropad.
diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c
new file mode 100644
index 000000000000..3e55f346f13b
--- /dev/null
+++ b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c
@@ -0,0 +1,35 @@
+// Copyright 2022 Aaron Hong (@hongaaronc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+#include "joystick.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ JS_BUTTON0,JS_BUTTON1,JS_BUTTON2,JS_BUTTON3,JS_BUTTON4,JS_BUTTON5,JS_BUTTON6,
+ KC_NO, JS_BUTTON7, KC_NO,
+ JS_BUTTON0,JS_BUTTON1,JS_BUTTON2,JS_BUTTON3,JS_BUTTON4,JS_BUTTON5,JS_BUTTON6
+ )
+};
+
+#if defined(JOYSTICK_ENABLE) && defined(ENCODER_ENABLE)
+
+int16_t joystick_position = 0;
+int16_t pulses_per_revolution = 24; // Depends on encoder model. Usually 18ppr or 24ppr for Bourns EC11s.
+int16_t full_joystick_value = 32767; // Equivalent to max value of int16. +full_joystick_value is +1.0 axis output. -full_joystick_value is -1.0 axis output.
+joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {
+ [0] = JOYSTICK_AXIS_VIRTUAL
+};
+
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ joystick_position += (clockwise ? 2 : -2) * (full_joystick_value / pulses_per_revolution); // +2 and -2 are used, since +1.0 and -1.0 axis output refers to positions at half of a full rotation
+
+ if (joystick_position != joystick_status.axes[0]) {
+ joystick_status.axes[0] = joystick_position;
+ joystick_status.status |= JS_UPDATED;
+ }
+ return true;
+}
+
+#endif
diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/readme.md b/keyboards/synthlabs/solo/keymaps/gamepad/readme.md
new file mode 100644
index 000000000000..9930bb61b470
--- /dev/null
+++ b/keyboards/synthlabs/solo/keymaps/gamepad/readme.md
@@ -0,0 +1,3 @@
+# Gamepad Synth Labs Solo Layout
+
+This keymap is intended for usage as a IIDX controller. The rotary encoder is mapped as a virtual 1-axis joystick.
diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/rules.mk b/keyboards/synthlabs/solo/keymaps/gamepad/rules.mk
new file mode 100644
index 000000000000..30c23b8763bf
--- /dev/null
+++ b/keyboards/synthlabs/solo/keymaps/gamepad/rules.mk
@@ -0,0 +1,2 @@
+JOYSTICK_ENABLE = yes
+DEBOUNCE_TYPE = sym_eager_pk
diff --git a/keyboards/synthlabs/solo/keymaps/via/keymap.c b/keyboards/synthlabs/solo/keymaps/via/keymap.c
new file mode 100644
index 000000000000..7949c61375f9
--- /dev/null
+++ b/keyboards/synthlabs/solo/keymaps/via/keymap.c
@@ -0,0 +1,74 @@
+// Copyright 2022 Aaron Hong (@hongaaronc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN,
+ KC_VOLD, KC_MUTE, KC_VOLU,
+ KC_J, KC_U, KC_K, KC_I, KC_L, KC_O, KC_SCLN
+ ),
+ [1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+ [2] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+ [3] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ )
+};
+
+#if defined(VIA_ENABLE) && defined(ENCODER_ENABLE)
+
+#ifdef ENCODERS
+static uint8_t encoder_state[] = {0};
+static keypos_t encoder_cw[] = ENCODERS_CW_KEY;
+static keypos_t encoder_ccw[] = ENCODERS_CCW_KEY;
+#endif
+
+void encoder_action_unregister(void) {
+#ifdef ENCODERS
+ for (int index = 0; index < ENCODERS; ++index) {
+ if (encoder_state[index]) {
+ keyevent_t encoder_event = (keyevent_t) {
+ .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = false,
+ .time = (timer_read() | 1)
+ };
+ encoder_state[index] = 0;
+ action_exec(encoder_event);
+ }
+ }
+#endif
+}
+
+void encoder_action_register(uint8_t index, bool clockwise) {
+#ifdef ENCODERS
+ keyevent_t encoder_event = (keyevent_t) {
+ .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
+ .pressed = true,
+ .time = (timer_read() | 1)
+ };
+ encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
+ action_exec(encoder_event);
+#endif
+}
+
+void matrix_scan_user(void) {
+ encoder_action_unregister();
+}
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ encoder_action_register(index, clockwise);
+ return false;
+}
+
+#endif
diff --git a/keyboards/synthlabs/solo/keymaps/via/rules.mk b/keyboards/synthlabs/solo/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/synthlabs/solo/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/synthlabs/solo/readme.md b/keyboards/synthlabs/solo/readme.md
new file mode 100644
index 000000000000..204bc3857f1c
--- /dev/null
+++ b/keyboards/synthlabs/solo/readme.md
@@ -0,0 +1,28 @@
+# Synth Labs Solo
+
+![Synth Labs Solo](https://i.imgur.com/uVUtfksh.png)
+
+The Solo Macropad by Synth Labs.
+
+* Keyboard Maintainer: [Nostril](https://github.com/hongaaronc)
+* Hardware Supported: Synth Labs Solo
+* Hardware Availability: [https://solo.synthlabs.io/](https://solo.synthlabs.io/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make synthlabs/solo:default
+
+Flashing example for this keyboard:
+
+ make synthlabs/solo: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 (1,1) in the matrix (the rotary encoder button) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+*
diff --git a/keyboards/synthlabs/solo/rules.mk b/keyboards/synthlabs/solo/rules.mk
new file mode 100644
index 000000000000..131aa72aeb5d
--- /dev/null
+++ b/keyboards/synthlabs/solo/rules.mk
@@ -0,0 +1,13 @@
+# 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 = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
diff --git a/keyboards/synthlabs/solo/solo.c b/keyboards/synthlabs/solo/solo.c
new file mode 100644
index 000000000000..b557a3505c4b
--- /dev/null
+++ b/keyboards/synthlabs/solo/solo.c
@@ -0,0 +1,18 @@
+// Copyright 2022 Aaron Hong (@hongaaronc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "solo.h"
+
+#if !defined(VIA_ENABLE) && !defined(JOYSTICK_ENABLE) && defined(ENCODER_ENABLE)
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ if (index == 0) {
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ }
+ return true;
+}
+#endif
diff --git a/keyboards/synthlabs/solo/solo.h b/keyboards/synthlabs/solo/solo.h
new file mode 100644
index 000000000000..c487446a498b
--- /dev/null
+++ b/keyboards/synthlabs/solo/solo.h
@@ -0,0 +1,41 @@
+// Copyright 2022 Aaron Hong (@hongaaronc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+#define LAYOUT_all( \
+ k00, k01, k02, k03, k04, k05, k06, \
+ k10, k11, k12, \
+ k20, k21, k22, k23, k24, k25, k26 \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06 }, \
+ { k10, k11, k12, XXX, XXX, XXX, XXX }, \
+ { k20, k21, k22, k23, k24, k25, k26 } \
+}
+
+#define LAYOUT_left( \
+ k01, k03, k05, \
+ k10, k11, k12, \
+ k20, k22, k24, k26 \
+) { \
+ { XXX, k01, XXX, k03, XXX, k05, XXX }, \
+ { k10, k11, k12, XXX, XXX, XXX, XXX }, \
+ { k20, XXX, k22, XXX, k24, XXX, k26 } \
+}
+
+#define LAYOUT_right( \
+ k25, k23, k21, \
+ k10, k11, k12, \
+ k06, k04, k02, k00 \
+) { \
+ { k00, XXX, k02, XXX, k04, XXX, k06 }, \
+ { k10, k11, k12, XXX, XXX, XXX, XXX }, \
+ { XXX, k21, XXX, k23, XXX, k25, XXX } \
+}
From 3f66e25b41cdb9192f1a9efb2771fed36559afb0 Mon Sep 17 00:00:00 2001
From: Nabos <9805355+nab-os@users.noreply.github.com>
Date: Wed, 13 Apr 2022 08:03:49 +0200
Subject: [PATCH 137/221] [Keyboard] add 10k (#16531)
Co-authored-by: Ryan
Co-authored-by: Nicolas Ballet
---
keyboards/handwired/10k/10k.c | 18 ++++++++
keyboards/handwired/10k/10k.h | 20 ++++++++
keyboards/handwired/10k/config.h | 24 ++++++++++
keyboards/handwired/10k/info.json | 46 +++++++++++++++++++
.../handwired/10k/keymaps/default/keymap.c | 42 +++++++++++++++++
keyboards/handwired/10k/keymaps/via/keymap.c | 42 +++++++++++++++++
keyboards/handwired/10k/keymaps/via/rules.mk | 1 +
keyboards/handwired/10k/readme.md | 24 ++++++++++
keyboards/handwired/10k/rules.mk | 8 ++++
9 files changed, 225 insertions(+)
create mode 100644 keyboards/handwired/10k/10k.c
create mode 100644 keyboards/handwired/10k/10k.h
create mode 100644 keyboards/handwired/10k/config.h
create mode 100644 keyboards/handwired/10k/info.json
create mode 100644 keyboards/handwired/10k/keymaps/default/keymap.c
create mode 100644 keyboards/handwired/10k/keymaps/via/keymap.c
create mode 100644 keyboards/handwired/10k/keymaps/via/rules.mk
create mode 100644 keyboards/handwired/10k/readme.md
create mode 100644 keyboards/handwired/10k/rules.mk
diff --git a/keyboards/handwired/10k/10k.c b/keyboards/handwired/10k/10k.c
new file mode 100644
index 000000000000..bd0babd9569b
--- /dev/null
+++ b/keyboards/handwired/10k/10k.c
@@ -0,0 +1,18 @@
+/*
+Copyright 2022 Nabos
+
+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 .
+*/
+#include "10k.h"
+
diff --git a/keyboards/handwired/10k/10k.h b/keyboards/handwired/10k/10k.h
new file mode 100644
index 000000000000..8fbabcf6ca1b
--- /dev/null
+++ b/keyboards/handwired/10k/10k.h
@@ -0,0 +1,20 @@
+/*
+Copyright 2022 Nabos
+
+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 .
+*/
+#pragma once
+
+#include "quantum.h"
+
diff --git a/keyboards/handwired/10k/config.h b/keyboards/handwired/10k/config.h
new file mode 100644
index 000000000000..4ec6d941285c
--- /dev/null
+++ b/keyboards/handwired/10k/config.h
@@ -0,0 +1,24 @@
+/*
+Copyright 2022 Nabos
+
+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 .
+*/
+#pragma once
+#include "config_common.h"
+
+/* Enables This makes it easier for fast typists to use dual-function keys */
+#define PERMISSIVE_HOLD
+
+#define USE_I2C
+#define MASTER_RIGHT
diff --git a/keyboards/handwired/10k/info.json b/keyboards/handwired/10k/info.json
new file mode 100644
index 000000000000..7601788ddced
--- /dev/null
+++ b/keyboards/handwired/10k/info.json
@@ -0,0 +1,46 @@
+{
+ "keyboard_name": "10k",
+ "maintainer": "Nabos",
+ "manufacturer": "Nabos",
+ "debounce": 5,
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "cols": ["C6", "D7", "E6", "B4", "B5"],
+ "rows": ["B6"]
+ },
+ "features": {
+ "audio": false,
+ "backlight": false,
+ "bootmagic": false,
+ "command": false,
+ "console": false,
+ "extrakey": false,
+ "mousekey": false,
+ "nkro": false,
+ "rgblight": false
+ },
+ "usb": {
+ "vid": "0x6869",
+ "pid": "0x0001",
+ "device_version": "0.0.1"
+ },
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_split_1x5"
+ },
+ "layouts": {
+ "LAYOUT_split_1x5": {
+ "layout": [
+ {"label": "L00", "matrix": [0, 0], "x":0.4295, "y":1.011},
+ {"label": "L01", "matrix": [0, 1], "x":1.445, "y":0.819},
+ {"label": "L02", "matrix": [0, 2], "x":2.5385, "y":0.7555},
+ {"label": "L03", "matrix": [0, 3], "x":3.568, "y":1.3745},
+ {"label": "L04", "matrix": [0, 4], "x":4.2, "y":3.987},
+ {"label": "R00", "matrix": [1, 0], "x":5.2, "y":3.987},
+ {"label": "R01", "matrix": [1, 1], "x":5.832, "y":1.3745},
+ {"label": "R02", "matrix": [1, 2], "x":6.8615, "y":0.7555},
+ {"label": "R03", "matrix": [1, 3], "x":7.955, "y":0.819},
+ {"label": "R04", "matrix": [1, 4], "x":8.9705, "y":1.011}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/10k/keymaps/default/keymap.c b/keyboards/handwired/10k/keymaps/default/keymap.c
new file mode 100644
index 000000000000..3bbcff563cca
--- /dev/null
+++ b/keyboards/handwired/10k/keymaps/default/keymap.c
@@ -0,0 +1,42 @@
+/*
+Copyright 2022 Nabos
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_split_1x5(
+ KC_A , KC_S , KC_D , KC_F ,KC_SPC , KC_SPC , KC_J , KC_K , KC_L ,KC_SCLN
+ ),
+
+ [_LOWER] = LAYOUT_split_1x5(
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+ ),
+
+ [_RAISE] = LAYOUT_split_1x5(
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+ ),
+
+ [_ADJUST] = LAYOUT_split_1x5(
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+ )
+};
diff --git a/keyboards/handwired/10k/keymaps/via/keymap.c b/keyboards/handwired/10k/keymaps/via/keymap.c
new file mode 100644
index 000000000000..3bbcff563cca
--- /dev/null
+++ b/keyboards/handwired/10k/keymaps/via/keymap.c
@@ -0,0 +1,42 @@
+/*
+Copyright 2022 Nabos
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_split_1x5(
+ KC_A , KC_S , KC_D , KC_F ,KC_SPC , KC_SPC , KC_J , KC_K , KC_L ,KC_SCLN
+ ),
+
+ [_LOWER] = LAYOUT_split_1x5(
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+ ),
+
+ [_RAISE] = LAYOUT_split_1x5(
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+ ),
+
+ [_ADJUST] = LAYOUT_split_1x5(
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+ )
+};
diff --git a/keyboards/handwired/10k/keymaps/via/rules.mk b/keyboards/handwired/10k/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/handwired/10k/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/handwired/10k/readme.md b/keyboards/handwired/10k/readme.md
new file mode 100644
index 000000000000..270297e92787
--- /dev/null
+++ b/keyboards/handwired/10k/readme.md
@@ -0,0 +1,24 @@
+# 10k
+
+Simple 10 keys chord keyboard
+
+* Keyboard Maintainer: [Nabos](https://github.com/nab-os)
+* Hardware Supported: Tested with Elite-C V4 and ProMicro
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/10k:default
+
+Flashing example for this keyboard:
+
+ make handwired/10k: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 `RESET` if it is available
diff --git a/keyboards/handwired/10k/rules.mk b/keyboards/handwired/10k/rules.mk
new file mode 100644
index 000000000000..af5f432a635d
--- /dev/null
+++ b/keyboards/handwired/10k/rules.mk
@@ -0,0 +1,8 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+SPLIT_KEYBOARD = yes
+LTO_ENABLE = yes
From 2d05c7fc2500582fd0605569fe929e04bb8cc8ae Mon Sep 17 00:00:00 2001
From: ziptyze
Date: Wed, 13 Apr 2022 02:04:38 -0400
Subject: [PATCH 138/221] [Keyboard] super16 update (#16494)
---
keyboards/1upkeyboards/super16v2/config.h | 81 ++++++++++++++-----
.../super16v2/keymaps/default/keymap.c | 18 ++++-
.../super16v2/keymaps/mouse/keymap.c | 50 ++++++++++++
.../super16v2/keymaps/mouse/readme.md | 1 +
keyboards/1upkeyboards/super16v2/rules.mk | 5 +-
keyboards/1upkeyboards/super16v2/super16v2.c | 24 ++++++
6 files changed, 156 insertions(+), 23 deletions(-)
create mode 100644 keyboards/1upkeyboards/super16v2/keymaps/mouse/keymap.c
create mode 100644 keyboards/1upkeyboards/super16v2/keymaps/mouse/readme.md
diff --git a/keyboards/1upkeyboards/super16v2/config.h b/keyboards/1upkeyboards/super16v2/config.h
index 4685e66b2db1..9832c28bef41 100644
--- a/keyboards/1upkeyboards/super16v2/config.h
+++ b/keyboards/1upkeyboards/super16v2/config.h
@@ -22,6 +22,8 @@
#define MATRIX_ROWS 4
#define MATRIX_COLS 4
+#define MOUSEKEY_MOVE_DELTA 25
+
/*
* Keyboard Matrix Assignments
*
@@ -37,6 +39,9 @@
#define MATRIX_ROW_PINS { D1, D2, D3, D4 }
#define MATRIX_COL_PINS { D5, D6, C2, D0 }
+#define ENCODERS_PAD_A { B1, B3 }
+#define ENCODERS_PAD_B { B2, B4 }
+
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
@@ -58,28 +63,62 @@
//#define BACKLIGHT_BREATHING
#define RGB_DI_PIN B5
+#define DRIVER_LED_TOTAL 20
#ifdef RGB_DI_PIN
-# define RGBLED_NUM 20
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
-# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-# 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
-/*== customize breathing effect ==*/
-/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
-//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
-/*==== use exp() and sin() ====*/
-//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
-//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+# define RGBLIGHT_LIMIT_VAL 255
+#endif
+#ifdef RGB_MATRIX_ENABLE
+# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
+// RGB Matrix Animation modes. Explicitly enabled
+// For full list of effects, see:
+// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
+# define ENABLE_RGB_MATRIX_ALPHAS_MODS
+# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+# define ENABLE_RGB_MATRIX_BREATHING
+# define ENABLE_RGB_MATRIX_BAND_SAT
+# define ENABLE_RGB_MATRIX_BAND_VAL
+# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+# define ENABLE_RGB_MATRIX_CYCLE_ALL
+# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+# define ENABLE_RGB_MATRIX_DUAL_BEACON
+# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+# define ENABLE_RGB_MATRIX_RAINDROPS
+# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+# define ENABLE_RGB_MATRIX_HUE_BREATHING
+# define ENABLE_RGB_MATRIX_HUE_PENDULUM
+# define ENABLE_RGB_MATRIX_HUE_WAVE
+# define ENABLE_RGB_MATRIX_PIXEL_RAIN
+# define ENABLE_RGB_MATRIX_PIXEL_FLOW
+# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
+//# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+# define ENABLE_RGB_MATRIX_SPLASH
+//# define ENABLE_RGB_MATRIX_MULTISPLASH
+//# define ENABLE_RGB_MATRIX_SOLID_SPLASH
+//# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c
index dc58023a3783..b80db58baecc 100644
--- a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c
@@ -27,8 +27,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_ortho_4x4( /* Fn Layer */
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, RESET
),
};
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { /* First encoder */
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ } else if (index == 1) { /* Second encoder */
+ if (clockwise) {
+ rgb_matrix_increase_hue();
+ } else {
+ rgb_matrix_decrease_hue();
+ }
+ }
+ return false;
+}
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/super16v2/keymaps/mouse/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/mouse/keymap.c
new file mode 100644
index 000000000000..86ea58e8a58c
--- /dev/null
+++ b/keyboards/1upkeyboards/super16v2/keymaps/mouse/keymap.c
@@ -0,0 +1,50 @@
+/* Copyright 2022 MechMerlin
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x4( /* Base */
+ KC_TRNS, KC_DELETE, KC_BACKSPACE, KC_MUTE,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3, KC_PSLS,
+ MO(1), KC_P0, KC_PDOT, KC_BTN3
+ ),
+
+ [1] = LAYOUT_ortho_4x4( /* Fn Layer */
+ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
+ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
+ RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RESET
+ ),
+};
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { /* First encoder */
+ if (clockwise) {
+ tap_code_delay(KC_MS_RIGHT, 10);
+ } else {
+ tap_code_delay(KC_MS_LEFT, 10);
+ }
+ } else if (index == 1) { /* Second encoder */
+ if (clockwise) {
+ tap_code_delay(KC_AUDIO_VOL_UP, 10);
+ } else {
+ tap_code_delay(KC_AUDIO_VOL_DOWN, 10);
+ }
+ }
+ return false;
+}
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/super16v2/keymaps/mouse/readme.md b/keyboards/1upkeyboards/super16v2/keymaps/mouse/readme.md
new file mode 100644
index 000000000000..e229fcba7409
--- /dev/null
+++ b/keyboards/1upkeyboards/super16v2/keymaps/mouse/readme.md
@@ -0,0 +1 @@
+# The default keymap for Super 16 V2
diff --git a/keyboards/1upkeyboards/super16v2/rules.mk b/keyboards/1upkeyboards/super16v2/rules.mk
index d31d53cead1b..3e20247dff26 100644
--- a/keyboards/1upkeyboards/super16v2/rules.mk
+++ b/keyboards/1upkeyboards/super16v2/rules.mk
@@ -14,5 +14,8 @@ CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+ENCODER_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/super16v2/super16v2.c b/keyboards/1upkeyboards/super16v2/super16v2.c
index fc73f700c49b..ff7ce33c8415 100644
--- a/keyboards/1upkeyboards/super16v2/super16v2.c
+++ b/keyboards/1upkeyboards/super16v2/super16v2.c
@@ -15,3 +15,27 @@
*/
#include "super16v2.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 3, 2, 1, 0 },
+ { 7, 6, 5, 4 },
+ { 11, 10, 9, 8 },
+ { 15, 14, 13, 12 }
+}, {
+ // LED Index to Physical Position
+ { 28, 12 }, { 84, 12 }, { 140, 12 }, { 196, 12 },
+ { 28, 28 }, { 84, 28 }, { 140, 28 }, { 196, 28 },
+ { 28, 44 }, { 84, 44 }, { 140, 44 }, { 196, 44 },
+ { 28, 60 }, { 84, 60 }, { 140, 60 }, { 196, 60 },
+ { 168, 48 }, { 168, 16 }, { 58, 16 }, { 56, 48 }
+}, {
+ // LED Index to Flag
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 2, 2, 2, 2,
+} };
+#endif
From 9a38ebc65600b42681e86179ab2ffe39dfd9dcdb Mon Sep 17 00:00:00 2001
From: Moritz
Date: Wed, 13 Apr 2022 08:20:07 +0200
Subject: [PATCH 139/221] [Keyboard] add E80-1800 PCB (#16645)
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/ebastler/e80_1800/chconf.h | 21 ++++
keyboards/ebastler/e80_1800/config.h | 67 +++++++++++
keyboards/ebastler/e80_1800/e80_1800.c | 17 +++
keyboards/ebastler/e80_1800/e80_1800.h | 109 ++++++++++++++++++
keyboards/ebastler/e80_1800/halconf.h | 21 ++++
keyboards/ebastler/e80_1800/info.json | 22 ++++
.../e80_1800/keymaps/ansi_6u/keymap.c | 46 ++++++++
.../e80_1800/keymaps/ansi_7u/keymap.c | 46 ++++++++
.../e80_1800/keymaps/default/keymap.c | 46 ++++++++
.../ebastler/e80_1800/keymaps/iso_6u/keymap.c | 47 ++++++++
.../ebastler/e80_1800/keymaps/iso_7u/keymap.c | 46 ++++++++
.../ebastler/e80_1800/keymaps/via/keymap.c | 47 ++++++++
.../ebastler/e80_1800/keymaps/via/rules.mk | 1 +
keyboards/ebastler/e80_1800/mcuconf.h | 32 +++++
keyboards/ebastler/e80_1800/readme.md | 25 ++++
keyboards/ebastler/e80_1800/rules.mk | 22 ++++
keyboards/ebastler/readme.md | 4 +-
17 files changed, 618 insertions(+), 1 deletion(-)
create mode 100644 keyboards/ebastler/e80_1800/chconf.h
create mode 100644 keyboards/ebastler/e80_1800/config.h
create mode 100644 keyboards/ebastler/e80_1800/e80_1800.c
create mode 100644 keyboards/ebastler/e80_1800/e80_1800.h
create mode 100644 keyboards/ebastler/e80_1800/halconf.h
create mode 100644 keyboards/ebastler/e80_1800/info.json
create mode 100644 keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c
create mode 100644 keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c
create mode 100644 keyboards/ebastler/e80_1800/keymaps/default/keymap.c
create mode 100644 keyboards/ebastler/e80_1800/keymaps/iso_6u/keymap.c
create mode 100644 keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c
create mode 100644 keyboards/ebastler/e80_1800/keymaps/via/keymap.c
create mode 100644 keyboards/ebastler/e80_1800/keymaps/via/rules.mk
create mode 100644 keyboards/ebastler/e80_1800/mcuconf.h
create mode 100644 keyboards/ebastler/e80_1800/readme.md
create mode 100644 keyboards/ebastler/e80_1800/rules.mk
diff --git a/keyboards/ebastler/e80_1800/chconf.h b/keyboards/ebastler/e80_1800/chconf.h
new file mode 100644
index 000000000000..ee4fd213a2bb
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/chconf.h
@@ -0,0 +1,21 @@
+/* Copyright 2022 Moritz Plattner
+ *
+ * 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 3 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 .
+ */
+#pragma once
+
+#define CH_CFG_ST_RESOLUTION 16
+#define CH_CFG_INTERVALS_SIZE 16
+
+#include_next
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/config.h b/keyboards/ebastler/e80_1800/config.h
new file mode 100644
index 000000000000..968c7a1fc7c5
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/config.h
@@ -0,0 +1,67 @@
+/* Copyright 2022 Moritz Plattner
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6562 // "eb"
+#define PRODUCT_ID 0x1338
+#define DEVICE_VER 0x0001
+#define MANUFACTURER ebastler
+#define PRODUCT E80-1800
+
+/* Limit layer count to fit in storage with VIA enabled */
+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
+
+/* key matrix size */
+#define MATRIX_ROWS 7
+#define MATRIX_COLS 19
+
+#define MATRIX_ROW_PINS { B7, B3, D2, C12, C11, C10, A15 }
+#define MATRIX_COL_PINS { A1, A0, C3, C2, F1, F0, C15, C14, C13, C4, C5, B0, B1, B2, B9, A13, A8, C9, C8 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+#define DEBOUNCE 5
+
+#define LED_NUM_LOCK_PIN B6
+#define LED_CAPS_LOCK_PIN B5
+#define LED_SCROLL_LOCK_PIN B4
+#define LED_PIN_ON_STATE 0
+
+/* Backlight */
+#define BACKLIGHT_PIN A9
+#define BACKLIGHT_BREATHING // don't disable even if you don't want breathing - it will not compile without
+#define BACKLIGHT_PWM_DRIVER PWMD1
+#define BACKLIGHT_PWM_CHANNEL 2
+#define BACKLIGHT_PAL_MODE 2
+#define BACKLIGHT_LEVELS 5
+#define BACKLIGHT_ON_STATE 1
+#define BACKLIGHT_PWM_OUTPUT_FREQUENCY 1000
+
+/* I2C for OLED */
+#define I2C_DRIVER I2CD2
+#define I2C1_SCL_PIN B10
+#define I2C1_SDA_PIN B11
+#define I2C1_SCL_PAL_MODE 1
+#define I2C1_SDA_PAL_MODE 1
+#define I2C1_TIMINGR_PRESC 0U
+#define I2C1_TIMINGR_SCLDEL 3U
+#define I2C1_TIMINGR_SDADEL 1U
+#define I2C1_TIMINGR_SCLH 3U
+#define I2C1_TIMINGR_SCLL 9U
diff --git a/keyboards/ebastler/e80_1800/e80_1800.c b/keyboards/ebastler/e80_1800/e80_1800.c
new file mode 100644
index 000000000000..7dd2f3edff51
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/e80_1800.c
@@ -0,0 +1,17 @@
+/* Copyright 2022 Moritz Plattner
+ *
+ * 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 .
+ */
+
+#include "e80_1800.h"
diff --git a/keyboards/ebastler/e80_1800/e80_1800.h b/keyboards/ebastler/e80_1800/e80_1800.h
new file mode 100644
index 000000000000..4027c0d27e92
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/e80_1800.h
@@ -0,0 +1,109 @@
+/* Copyright 2022 Moritz Plattner
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_1800_all( \
+ K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K015, K016, K017, K018, \
+ K115, K116, K117, K118, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, K217, K218, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \
+ K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418, \
+ K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K513, K514, K515, K516, K517, K518, \
+ K600, K601, K602, K606, K609, K610, K611, K612, K613, K614, K615, K616, K617 \
+) { \
+ { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015, K016, K017, K018 }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215, K216, K217, K218 }, \
+ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318 }, \
+ { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418 }, \
+ { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, KC_NO, K513, K514, K515, K516, K517, K518 }, \
+ { K600, K601, K602, KC_NO, KC_NO, KC_NO, K606, KC_NO, KC_NO, K609, K610, K611, K612, K613, K614, K615, K616, K617, KC_NO } \
+}
+
+#define LAYOUT_1800_iso_6u( \
+ K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K015, K016, K017, K018, \
+ K115, K116, K117, K118, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, K217, K218, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, K316, K317, K318, \
+ K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418, \
+ K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K513, K514, K515, K516, K517, K518, \
+ K600, K601, K602, K606, K609, K610, K611, K612, K613, K614, K615, K616, K617 \
+) { \
+ { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015, K016, K017, K018 }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215, K216, K217, K218 }, \
+ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315, K316, K317, K318 }, \
+ { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418 }, \
+ { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, KC_NO, K513, K514, K515, K516, K517, K518 }, \
+ { K600, K601, K602, KC_NO, KC_NO, KC_NO, K606, KC_NO, KC_NO, K609, K610, K611, K612, K613, K614, K615, K616, K617, KC_NO } \
+}
+
+#define LAYOUT_1800_iso_7u( \
+ K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K015, K016, K017, K018, \
+ K115, K116, K117, K118, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, K217, K218, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, K316, K317, K318, \
+ K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418, \
+ K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K513, K514, K515, K516, K517, K518, \
+ K600, K602, K606, K609, K612, K613, K614, K615, K616, K617 \
+) { \
+ { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015, K016, K017, K018 }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K115, K116, K117, K118 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215, K216, K217, K218 }, \
+ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315, K316, K317, K318 }, \
+ { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418 }, \
+ { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, KC_NO, K513, K514, K515, K516, K517, K518 }, \
+ { K600, KC_NO, K602, KC_NO, KC_NO, KC_NO, K606, KC_NO, KC_NO, K609, KC_NO, KC_NO, K612, K613, K614, K615, K616, K617, KC_NO } \
+}
+
+#define LAYOUT_1800_ansi_6u( \
+ K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K015, K016, K017, K018, \
+ K115, K116, K117, K118, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, K217, K218, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \
+ K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K414, K415, K416, K417, K418, \
+ K500, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K513, K514, K515, K516, K517, K518, \
+ K600, K601, K602, K606, K609, K610, K611, K612, K613, K614, K615, K616, K617 \
+) { \
+ { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015, K016, K017, K018 }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K314, K115, K116, K117, K118 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215, K216, K217, K218 }, \
+ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315, K316, K317, K318 }, \
+ { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO, K414, K415, K416, K417, K418 }, \
+ { K500, KC_NO, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, KC_NO, K513, K514, K515, K516, K517, K518 }, \
+ { K600, K601, K602, KC_NO, KC_NO, KC_NO, K606, KC_NO, KC_NO, K609, K610, K611, K612, K613, K614, K615, K616, K617, KC_NO } \
+}
+
+#define LAYOUT_1800_ansi_7u( \
+ K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K015, K016, K017, K018, \
+ K314, K115, K116, K117, K118, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, K217, K218, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, K316, K317, K318, \
+ K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K414, K415, K416, K417, K418, \
+ K500, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K513, K514, K515, K516, K517, K518, \
+ K600, K602, K606, K609, K612, K613, K614, K615, K616, K617 \
+) { \
+ { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015, K016, K017, K018 }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K314, K115, K116, K117, K118 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO, K214, K215, K216, K217, K218 }, \
+ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315, K316, K317, K318 }, \
+ { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO, K414, K415, K416, K417, K418 }, \
+ { K500, KC_NO, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, KC_NO, K513, K514, K515, K516, K517, K518 }, \
+ { K600, KC_NO, K602, KC_NO, KC_NO, KC_NO, K606, KC_NO, KC_NO, K609, KC_NO, KC_NO, K612, K613, K614, K615, K616, K617, KC_NO } \
+}
diff --git a/keyboards/ebastler/e80_1800/halconf.h b/keyboards/ebastler/e80_1800/halconf.h
new file mode 100644
index 000000000000..974b0086ad7f
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/halconf.h
@@ -0,0 +1,21 @@
+/* Copyright 2022 Moritz Plattner
+ *
+ * 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 3 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 .
+ */
+#pragma once
+
+#define HAL_USE_PWM TRUE
+#define HAL_USE_I2C TRUE
+
+#include_next
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/info.json b/keyboards/ebastler/e80_1800/info.json
new file mode 100644
index 000000000000..503cafaa3d6c
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/info.json
@@ -0,0 +1,22 @@
+{
+ "keyboard_name": "E80_1800",
+ "url": "https://github.com/ebastler/E80-1800",
+ "maintainer": "ebastler",
+ "layouts": {
+ "LAYOUT_1800_all": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"\u00ac", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"\"", "x":2, "y":2}, {"label":"\u00a7", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"&", "x":6, "y":2}, {"label":"/", "x":7, "y":2}, {"label":"(", "x":8, "y":2}, {"label":")", "x":9, "y":2}, {"label":"=", "x":10, "y":2}, {"label":"?", "x":11, "y":2}, {"label":"`", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"@", "x":11.75, "y":4}, {"label":"~", "x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":3, "w":1.25, "h":2}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"label":"|", "x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"up", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6}, {"label":"Win", "x":1, "y":6}, {"label":"Alt", "x":2, "y":6}, {"x":3, "y":6, "w":6}, {"label":"AltGr", "x":9, "y":6}, {"label":"Win", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"left", "x":13.25, "y":6.25}, {"label":"down", "x":14.25, "y":6.25}, {"label":"right", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
+ },
+ "LAYOUT_1800_iso_6u": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"\u00ac", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"\"", "x":2, "y":2}, {"label":"\u00a7", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"&", "x":6, "y":2}, {"label":"/", "x":7, "y":2}, {"label":"(", "x":8, "y":2}, {"label":")", "x":9, "y":2}, {"label":"=", "x":10, "y":2}, {"label":"?", "x":11, "y":2}, {"label":"`", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"@", "x":11.75, "y":4}, {"label":"~", "x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":3, "w":1.25, "h":2}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"label":"|", "x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"up", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6}, {"label":"Win", "x":1, "y":6}, {"label":"Alt", "x":2, "y":6}, {"x":3, "y":6, "w":6}, {"label":"AltGr", "x":9, "y":6}, {"label":"Win", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"left", "x":13.25, "y":6.25}, {"label":"down", "x":14.25, "y":6.25}, {"label":"right", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
+ },
+ "LAYOUT_1800_iso_7u": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"\u00ac", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"\"", "x":2, "y":2}, {"label":"\u00a7", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"&", "x":6, "y":2}, {"label":"/", "x":7, "y":2}, {"label":"(", "x":8, "y":2}, {"label":")", "x":9, "y":2}, {"label":"=", "x":10, "y":2}, {"label":"?", "x":11, "y":2}, {"label":"`", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"@", "x":11.75, "y":4}, {"label":"~", "x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":3, "w":1.25, "h":2}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"label":"|", "x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"up", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6, "w":1.5}, {"label":"Alt", "x":1.5, "y":6, "w":1.5}, {"x":3, "y":6, "w":7}, {"label":"AltGr", "x":10, "y":6, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":6, "w":1.5}, {"label":"left", "x":13.25, "y":6.25}, {"label":"down", "x":14.25, "y":6.25}, {"label":"right", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
+ },
+ "LAYOUT_1800_ansi_6u": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"@", "x":11.75, "y":4}, {"label":"Enter", "x":12.75, "y":4, "w":2.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":2.25}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"up", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6}, {"label":"Win", "x":1, "y":6}, {"label":"Alt", "x":2, "y":6}, {"x":3, "y":6, "w":6}, {"label":"Alt", "x":9, "y":6}, {"label":"Win", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"left", "x":13.25, "y":6.25}, {"label":"down", "x":14.25, "y":6.25}, {"label":"right", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
+ },
+ "LAYOUT_1800_ansi_7u": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"PrtSc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll Lock", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"@", "x":11.75, "y":4}, {"label":"Enter", "x":12.75, "y":4, "w":2.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":2.25}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"up", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6, "w":1.5}, {"label":"Alt", "x":1.5, "y":6, "w":1.5}, {"x":3, "y":6, "w":7}, {"label":"Alt", "x":10, "y":6, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":6, "w":1.5}, {"label":"left", "x":13.25, "y":6.25}, {"label":"down", "x":14.25, "y":6.25}, {"label":"right", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c
new file mode 100644
index 000000000000..cb2ded2650a4
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c
@@ -0,0 +1,46 @@
+/* Copyright 2020 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_1800_ansi_6u( /* keymap for layer 0 */
+ 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
+ KC_DEL, KC_END, KC_PGDN, KC_SLCK,
+ 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
+ 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_KP_7, KC_KP_8, KC_KP_9, KC_PMNS,
+ KC_CLCK, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,
+ 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_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, KC_PDOT),
+
+ [1] = LAYOUT_1800_ansi_6u( /* keymap for layer 1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, KC_TRNS,
+ KC_TRNS, BL_TOGG, BL_DEC, BL_BRTG,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_1800_ansi_6u( /* keymap for layer 2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c
new file mode 100644
index 000000000000..7e46c4589bba
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c
@@ -0,0 +1,46 @@
+/* Copyright 2020 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_1800_ansi_7u( /* keymap for layer 0 */
+ 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
+ KC_DEL, KC_END, KC_PGDN, KC_SLCK,
+ 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
+ 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_KP_7, KC_KP_8, KC_KP_9, KC_PMNS,
+ KC_CLCK, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,
+ 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_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
+ KC_LCTL, KC_LALT, KC_SPC, KC_RALT, LT(1, KC_RCTL), KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, KC_PDOT),
+
+ [1] = LAYOUT_1800_ansi_7u( /* keymap for layer 1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, KC_TRNS,
+ KC_TRNS, BL_TOGG, BL_DEC, BL_BRTG,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_1800_ansi_7u( /* keymap for layer 2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/keymaps/default/keymap.c b/keyboards/ebastler/e80_1800/keymaps/default/keymap.c
new file mode 100644
index 000000000000..e1b6133aa6ec
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/keymaps/default/keymap.c
@@ -0,0 +1,46 @@
+/* Copyright 2020 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_1800_all( /* keymap for layer 0 */
+ 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
+ KC_DEL, KC_END, KC_PGDN, KC_SLCK,
+ 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
+ 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_KP_7, KC_KP_8, KC_KP_9, KC_PMNS,
+ KC_CLCK, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,
+ 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_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, KC_PDOT),
+
+ [1] = LAYOUT_1800_all( /* keymap for layer 1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, KC_TRNS,
+ KC_TRNS, BL_TOGG, BL_DEC, BL_BRTG,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_1800_all( /* keymap for layer 2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/keymaps/iso_6u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/iso_6u/keymap.c
new file mode 100644
index 000000000000..723e76a9ec2a
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/keymaps/iso_6u/keymap.c
@@ -0,0 +1,47 @@
+/* Copyright 2020 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_1800_iso_6u( /* keymap for layer 0 */
+ 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
+ KC_DEL, KC_END, KC_PGDN, KC_SLCK,
+ 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
+ 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_KP_7, KC_KP_8, KC_KP_9, KC_PMNS,
+ KC_CLCK, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,
+ 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_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, KC_PDOT),
+
+ [1] = LAYOUT_1800_iso_6u( /* keymap for layer 1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, KC_TRNS,
+ KC_TRNS, BL_TOGG, BL_DEC, BL_BRTG,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_1800_iso_6u( /* keymap for layer 2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
+
diff --git a/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c
new file mode 100644
index 000000000000..49e993a90d54
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c
@@ -0,0 +1,46 @@
+/* Copyright 2020 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_1800_iso_7u( /* keymap for layer 0 */
+ 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
+ KC_DEL, KC_END, KC_PGDN, KC_SLCK,
+ 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
+ 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_KP_7, KC_KP_8, KC_KP_9, KC_PMNS,
+ KC_CLCK, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,
+ 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_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
+ KC_LCTL, KC_LALT, KC_SPC, KC_RALT, LT(1, KC_RCTL), KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, KC_PDOT),
+
+ [1] = LAYOUT_1800_iso_7u( /* keymap for layer 1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, KC_TRNS,
+ KC_TRNS, BL_TOGG, BL_DEC, BL_BRTG,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_1800_iso_7u( /* keymap for layer 2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/keymaps/via/keymap.c b/keyboards/ebastler/e80_1800/keymaps/via/keymap.c
new file mode 100644
index 000000000000..f747ffe4b2a1
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/keymaps/via/keymap.c
@@ -0,0 +1,47 @@
+/* Copyright 2022 Moritz Plattner
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_1800_all( /* keymap for layer 0 */
+ 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
+ KC_DEL, KC_END, KC_PGDN, KC_SLCK,
+ 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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
+ 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_KP_7, KC_KP_8, KC_KP_9, KC_PMNS,
+ KC_CLCK, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,
+ 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_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_0, KC_PDOT),
+
+ [1] = LAYOUT_1800_all( /* keymap for layer 1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, KC_TRNS,
+ KC_TRNS, BL_TOGG, BL_DEC, BL_BRTG,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MUTE, KC_MNXT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_1800_all( /* keymap for layer 2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+
+};
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/keymaps/via/rules.mk b/keyboards/ebastler/e80_1800/keymaps/via/rules.mk
new file mode 100644
index 000000000000..036bd6d1c3ec
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/mcuconf.h b/keyboards/ebastler/e80_1800/mcuconf.h
new file mode 100644
index 000000000000..cff1dd578881
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/mcuconf.h
@@ -0,0 +1,32 @@
+/* Copyright 2022 Moritz Plattner
+ *
+ * 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 3 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 .
+ */
+#pragma once
+
+#include_next
+
+/* enable TIM1, used for backlight PWM */
+#undef STM32_PWM_USE_TIM1
+#define STM32_PWM_USE_TIM1 TRUE
+
+/* enable I2C2, used for the OLED */
+#undef STM32_I2C_USE_I2C2
+#define STM32_I2C_USE_I2C2 TRUE
+
+#undef STM32_I2C_USE_DMA
+#define STM32_I2C_USE_DMA TRUE
+
+#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
+#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/readme.md b/keyboards/ebastler/e80_1800/readme.md
new file mode 100644
index 000000000000..87fd9756b65e
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/readme.md
@@ -0,0 +1,25 @@
+# E80-1800
+
+![E80_1800_sample_image](https://i.imgur.com/yzCfVSth.png)
+
+A replacement PCB for the Cherry G80-1800 keyboard. Supports ISO and ANSI, 6u offcenter or 7u bottom row, stepped and regular caps lock. Optional i2c header for OLED. Type-C on the PCB (requires some case modifications). The PCB is open source and can be found in my [Github repo](https://github.com/ebastler/E80-1800).
+
+* Keyboard Maintainer: [ebastler](https://github.com/ebastler)
+* Hardware Supported: r1 and r1.1 PCB, see Github repo linked above
+* Hardware Availability: Groupbuy, otherwise feel free to order your own boards. jlcpcb compatible gerber/BOM/CPL files are included.
+
+How to enter the Bootloader:
+* No pre-flashed firmware, option 1: Bridge `BOOT` labeled pads below spacebar while plugging the board in
+* No pre-flashed firmware, option 2: Bridge `BOOT` labeled pads below spacebar, then quickly short `RST` labeled pads
+* Pre-flashed firmware: Use Bootmagic - keep the `ESC` (top left most) key pressed while plugging the board in
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ebastler/e80_1800:default
+
+Flash example for this keyboard (after setting up your build environment):
+
+ make ebastler/e80_1800:default
+
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
\ No newline at end of file
diff --git a/keyboards/ebastler/e80_1800/rules.mk b/keyboards/ebastler/e80_1800/rules.mk
new file mode 100644
index 000000000000..25d40cb90f00
--- /dev/null
+++ b/keyboards/ebastler/e80_1800/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = STM32F072
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
+OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
\ No newline at end of file
diff --git a/keyboards/ebastler/readme.md b/keyboards/ebastler/readme.md
index 00c612c23cd3..4b6efd2f7154 100644
--- a/keyboards/ebastler/readme.md
+++ b/keyboards/ebastler/readme.md
@@ -1,6 +1,8 @@
# ebastler
-I'm a hobbyist designing keyboards for fun. [My homepage](https://mpwr.xyz). All my personal keyboard projects are open source and can be found in my github repo(s), linked below. Commissions may remain closed source.
+I'm a hobbyist designing keyboards for fun. [My homepage](https://mpwr.xyz). All my personal keyboard projects are open source and can be found in my github repos, linked below. Commissions may remain closed source.
* [isometria75](isometria_75) - 75% ISO-only board with rotary encoder, RGB underglow and single color backlight. [Github repo](https://github.com/ebastler/isometria-75).
+
+* [E80-1800](E80_1800) - drop-in replacement PCB for the Cherry G80-1800. Requires minor case modifications, but adds backlight, native USB-C and (obviously) QMK. [Github repo](https://github.com/ebastler/E80-1800).
\ No newline at end of file
From f3a49876d50c7fc8d71f9718de9319321d8e94c9 Mon Sep 17 00:00:00 2001
From: melonbred <61572569+melonbred@users.noreply.github.com>
Date: Tue, 12 Apr 2022 23:36:33 -0700
Subject: [PATCH 140/221] [Keyboard] add pegasus (#16701)
Co-authored-by: Joel Challis
Co-authored-by: Drashna Jaelre
Co-authored-by: Ryan
---
keyboards/pegasus/config.h | 80 ++++++++++++++++
keyboards/pegasus/info.json | 100 ++++++++++++++++++++
keyboards/pegasus/keymaps/default/config.h | 20 ++++
keyboards/pegasus/keymaps/default/keymap.c | 50 ++++++++++
keyboards/pegasus/keymaps/default/readme.md | 1 +
keyboards/pegasus/keymaps/split/config.h | 20 ++++
keyboards/pegasus/keymaps/split/keymap.c | 49 ++++++++++
keyboards/pegasus/keymaps/split/readme.md | 1 +
keyboards/pegasus/pegasus.c | 37 ++++++++
keyboards/pegasus/pegasus.h | 57 +++++++++++
keyboards/pegasus/readme.md | 23 +++++
keyboards/pegasus/rules.mk | 19 ++++
12 files changed, 457 insertions(+)
create mode 100644 keyboards/pegasus/config.h
create mode 100644 keyboards/pegasus/info.json
create mode 100644 keyboards/pegasus/keymaps/default/config.h
create mode 100644 keyboards/pegasus/keymaps/default/keymap.c
create mode 100644 keyboards/pegasus/keymaps/default/readme.md
create mode 100644 keyboards/pegasus/keymaps/split/config.h
create mode 100644 keyboards/pegasus/keymaps/split/keymap.c
create mode 100644 keyboards/pegasus/keymaps/split/readme.md
create mode 100644 keyboards/pegasus/pegasus.c
create mode 100644 keyboards/pegasus/pegasus.h
create mode 100644 keyboards/pegasus/readme.md
create mode 100644 keyboards/pegasus/rules.mk
diff --git a/keyboards/pegasus/config.h b/keyboards/pegasus/config.h
new file mode 100644
index 000000000000..6f773da966d3
--- /dev/null
+++ b/keyboards/pegasus/config.h
@@ -0,0 +1,80 @@
+/*
+Copyright 2020 melonbred
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0000
+#define DEVICE_VER 0x0001
+#define MANUFACTURER melonbred
+#define PRODUCT Pegasus
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F0, F1, F4, E6 }
+#define MATRIX_COL_PINS { D2, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5 }
+//#define UNUSED_PINS { B0, B1, B2, B3, B7 }
+
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+
+/* Rotary Encoder Definitions */
+#define ENCODERS_PAD_A { D0, D5 }
+#define ENCODERS_PAD_B { D1, D3 }
+
+/*
+ * 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
diff --git a/keyboards/pegasus/info.json b/keyboards/pegasus/info.json
new file mode 100644
index 000000000000..238442b8212f
--- /dev/null
+++ b/keyboards/pegasus/info.json
@@ -0,0 +1,100 @@
+{
+ "keyboard_name": "pegasus",
+ "url": "",
+ "maintainer": "melonbred",
+ "layouts": {
+ "LAYOUT_default": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"Q", "x":1, "y":0},
+ {"label":"W", "x":2, "y":0},
+ {"label":"E", "x":3, "y":0},
+ {"label":"R", "x":4, "y":0},
+ {"label":"T", "x":5, "y":0},
+ {"label":"Y", "x":6, "y":0},
+ {"label":"U", "x":7, "y":0},
+ {"label":"I", "x":8, "y":0},
+ {"label":"O", "x":9, "y":0},
+ {"label":"P", "x":10, "y":0},
+ {"label":"Backspace", "x":11, "y":0, "w":1.75},
+ {"label":"Control", "x":0, "y":1, "w":1.25},
+ {"label":"A", "x":1.25, "y":1},
+ {"label":"S", "x":2.25, "y":1},
+ {"label":"D", "x":3.25, "y":1},
+ {"label":"F", "x":4.25, "y":1},
+ {"label":"G", "x":5.25, "y":1},
+ {"label":"H", "x":6.25, "y":1},
+ {"label":"J", "x":7.25, "y":1},
+ {"label":"K", "x":8.25, "y":1},
+ {"label":"L", "x":9.25, "y":1},
+ {"label":":", "x":10.25, "y":1},
+ {"label":"Enter", "x":11.25, "y":1, "w":1.5},
+ {"label":"Shift", "x":0, "y":2, "w":1.75},
+ {"label":"Z", "x":1.75, "y":2},
+ {"label":"X", "x":2.75, "y":2},
+ {"label":"C", "x":3.75, "y":2},
+ {"label":"V", "x":4.75, "y":2},
+ {"label":"B", "x":5.75, "y":2},
+ {"label":"N", "x":6.75, "y":2},
+ {"label":"M", "x":7.75, "y":2},
+ {"label":"<", "x":8.75, "y":2},
+ {"label":">", "x":9.75, "y":2},
+ {"label":"?", "x":10.75, "y":2},
+ {"label":"Shift", "x":11.75, "y":2},
+ {"label":"Fn", "x":0, "y":3, "w":1.25},
+ {"label":"Alt", "x":2, "y":3, "w":1.25},
+ {"x":3.25, "y":3, "w":6.25},
+ {"label":"Alt", "x":9.5, "y":3, "w":1.25},
+ {"label":"Ctrl", "x":11.5, "y":3, "w":1.25}
+ ]
+ },
+ "LAYOUT_split": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"Q", "x":1, "y":0},
+ {"label":"W", "x":2, "y":0},
+ {"label":"E", "x":3, "y":0},
+ {"label":"R", "x":4, "y":0},
+ {"label":"T", "x":5, "y":0},
+ {"label":"Y", "x":6, "y":0},
+ {"label":"U", "x":7, "y":0},
+ {"label":"I", "x":8, "y":0},
+ {"label":"O", "x":9, "y":0},
+ {"label":"P", "x":10, "y":0},
+ {"label":"Backspace", "x":11, "y":0, "w":1.75},
+ {"label":"Control", "x":0, "y":1, "w":1.25},
+ {"label":"A", "x":1.25, "y":1},
+ {"label":"S", "x":2.25, "y":1},
+ {"label":"D", "x":3.25, "y":1},
+ {"label":"F", "x":4.25, "y":1},
+ {"label":"G", "x":5.25, "y":1},
+ {"label":"H", "x":6.25, "y":1},
+ {"label":"J", "x":7.25, "y":1},
+ {"label":"K", "x":8.25, "y":1},
+ {"label":"L", "x":9.25, "y":1},
+ {"label":":", "x":10.25, "y":1},
+ {"label":"Enter", "x":11.25, "y":1, "w":1.5},
+ {"label":"Shift", "x":0, "y":2, "w":1.75},
+ {"label":"Z", "x":1.75, "y":2},
+ {"label":"X", "x":2.75, "y":2},
+ {"label":"C", "x":3.75, "y":2},
+ {"label":"V", "x":4.75, "y":2},
+ {"label":"B", "x":5.75, "y":2},
+ {"label":"N", "x":6.75, "y":2},
+ {"label":"M", "x":7.75, "y":2},
+ {"label":"<", "x":8.75, "y":2},
+ {"label":">", "x":9.75, "y":2},
+ {"label":"?", "x":10.75, "y":2},
+ {"label":"Shift", "x":11.75, "y":2},
+ {"label":"Fn", "x":0, "y":3, "w":1.25},
+ {"label":"Alt", "x":2, "y":3, "w":1.25},
+ {"x":3.25, "y":3},
+ {"x":4.25, "y":3, "w":2},
+ {"x":6.25, "y":3, "w":2.25},
+ {"x":8.5, "y":3},
+ {"label":"Alt", "x":9.5, "y":3, "w":1.25},
+ {"label":"Ctrl", "x":11.5, "y":3, "w":1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/pegasus/keymaps/default/config.h b/keyboards/pegasus/keymaps/default/config.h
new file mode 100644
index 000000000000..d76c709440cb
--- /dev/null
+++ b/keyboards/pegasus/keymaps/default/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2020 melonbred
+ *
+ * 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 .
+ */
+
+#pragma once
+
+// place overrides here
+#define TAPPING_TERM 175
diff --git a/keyboards/pegasus/keymaps/default/keymap.c b/keyboards/pegasus/keymaps/default/keymap.c
new file mode 100644
index 000000000000..fb2cb061fff8
--- /dev/null
+++ b/keyboards/pegasus/keymaps/default/keymap.c
@@ -0,0 +1,50 @@
+/* Copyright 2020 melonbred
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _LAYER1,
+ _LAYER2
+
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_default(
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ CTL_T(KC_TAB), 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_DOT, KC_SLSH, KC_RSFT,
+ MO(_LAYER2), KC_LALT, LT(_LAYER1, KC_SPC), KC_RALT, KC_RGUI
+ ),
+
+ [_LAYER1] = LAYOUT_default(
+ KC_GRV, KC_QUOT, _______, KC_UP, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_DEL,
+ KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PSLS, KC_PMNS, KC_4, KC_5, KC_6, KC_ENT,
+ KC_LSFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_PAST, KC_PPLS, KC_1, KC_2, KC_3, KC_RSFT,
+ _______, _______, _______, KC_0, KC_PDOT
+ ),
+
+ [_LAYER2] = LAYOUT_default(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, KC_RALT, KC_RCTL, KC_DEL, KC_VOLD,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY
+ ),
+};
+
+
+
diff --git a/keyboards/pegasus/keymaps/default/readme.md b/keyboards/pegasus/keymaps/default/readme.md
new file mode 100644
index 000000000000..170cc76269d3
--- /dev/null
+++ b/keyboards/pegasus/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for pegasus
diff --git a/keyboards/pegasus/keymaps/split/config.h b/keyboards/pegasus/keymaps/split/config.h
new file mode 100644
index 000000000000..d76c709440cb
--- /dev/null
+++ b/keyboards/pegasus/keymaps/split/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2020 melonbred
+ *
+ * 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 .
+ */
+
+#pragma once
+
+// place overrides here
+#define TAPPING_TERM 175
diff --git a/keyboards/pegasus/keymaps/split/keymap.c b/keyboards/pegasus/keymaps/split/keymap.c
new file mode 100644
index 000000000000..964cfa2df757
--- /dev/null
+++ b/keyboards/pegasus/keymaps/split/keymap.c
@@ -0,0 +1,49 @@
+/* Copyright 2020 melonbred
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _LAYER1,
+ _LAYER2
+
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_split(
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ CTL_T(KC_TAB), 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_DOT, KC_SLSH, KC_RSFT,
+ MO(_LAYER2), KC_LALT, KC_LCTL, KC_SPC, LT(_LAYER1, KC_SPC), KC_RCTL, KC_RALT, KC_RGUI
+ ),
+
+ [_LAYER1] = LAYOUT_split(
+ KC_GRV, KC_QUOT, _______, KC_UP, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_DEL,
+ KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PSLS, KC_PMNS, KC_4, KC_5, KC_6, KC_ENT,
+ KC_LSFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_PAST, KC_PPLS, KC_1, KC_2, KC_3, KC_RSFT,
+ _______, _______, _______, _______, _______, _______, KC_0, KC_PDOT
+ ),
+
+ [_LAYER2] = LAYOUT_split(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, KC_RALT, KC_RCTL, KC_DEL, KC_VOLD,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY
+ ),
+};
+
diff --git a/keyboards/pegasus/keymaps/split/readme.md b/keyboards/pegasus/keymaps/split/readme.md
new file mode 100644
index 000000000000..170cc76269d3
--- /dev/null
+++ b/keyboards/pegasus/keymaps/split/readme.md
@@ -0,0 +1 @@
+# The default keymap for pegasus
diff --git a/keyboards/pegasus/pegasus.c b/keyboards/pegasus/pegasus.c
new file mode 100644
index 000000000000..0800a36f9e9d
--- /dev/null
+++ b/keyboards/pegasus/pegasus.c
@@ -0,0 +1,37 @@
+/* Copyright 2020 melonbred
+ *
+ * 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 .
+ */
+
+#include "pegasus.h"
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ if (index == 0) {
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else if (index == 1) {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ return true;
+}
+#endif
diff --git a/keyboards/pegasus/pegasus.h b/keyboards/pegasus/pegasus.h
new file mode 100644
index 000000000000..4582b2ccabbd
--- /dev/null
+++ b/keyboards/pegasus/pegasus.h
@@ -0,0 +1,57 @@
+/* Copyright 2020 melonbred
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+
+#define XXX KC_NO
+
+#define LAYOUT_default( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K36, K39, K3B \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, XXX, XXX, XXX, XXX, K36, XXX, XXX, K39, XXX, K3B } \
+}
+
+#define LAYOUT_split( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K32, K34, K36, K38, K39, K3B \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, XXX, K34, XXX, K36, XXX, K38, K39, XXX, K3B } \
+}
diff --git a/keyboards/pegasus/readme.md b/keyboards/pegasus/readme.md
new file mode 100644
index 000000000000..d164ba47aca6
--- /dev/null
+++ b/keyboards/pegasus/readme.md
@@ -0,0 +1,23 @@
+# Pegasus
+
+![pegasus](https://i.imgur.com/6MKJN7wh.jpg)
+
+Pegasus is a 40% keyboard with a 12.75u "WKL" layout with 0.75u blockers.
+
+* Keyboard Maintainer: [melonbred](https://github.com/melonbred)
+* Hardware Supported: The PCBs, controllers supported
+* Hardware Availability: Links to where you can find this hardware
+
+Make example for this keyboard (after setting up your build environment):
+
+ make pegasus:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## 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 `RESET` if it is available
diff --git a/keyboards/pegasus/rules.mk b/keyboards/pegasus/rules.mk
new file mode 100644
index 000000000000..50b46dc95873
--- /dev/null
+++ b/keyboards/pegasus/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 = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+ENCODER_ENABLE = yes
From 16c848ca009f01752815bca5544e406bbaced7af Mon Sep 17 00:00:00 2001
From: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Date: Wed, 13 Apr 2022 15:37:05 +0900
Subject: [PATCH 141/221] [Keymap] Change helix:froggy_106 keymap to use
split_common (#16704)
---
.../helix/rev2/keymaps/froggy_106/config.h | 6 +
.../helix/rev2/keymaps/froggy_106/keymap.c | 366 ++++++++++++------
.../helix/rev2/keymaps/froggy_106/rules.mk | 11 +-
3 files changed, 270 insertions(+), 113 deletions(-)
diff --git a/keyboards/helix/rev2/keymaps/froggy_106/config.h b/keyboards/helix/rev2/keymaps/froggy_106/config.h
index 36c3f2a7999e..9affa1d296ad 100644
--- a/keyboards/helix/rev2/keymaps/froggy_106/config.h
+++ b/keyboards/helix/rev2/keymaps/froggy_106/config.h
@@ -25,6 +25,12 @@ along with this program. If not, see .
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
+// the froggy keymap does not use the right hand side, so sync_timer is not needed
+#define DISABLE_SYNC_TIMER
+// For the same reason, the following are also not needed
+#undef SPLIT_LAYER_STATE_ENABLE
+#undef SPLIT_LED_STATE_ENABLE
+
// If you need more program area, try select and reduce rgblight modes to use.
// Selection of RGBLIGHT MODE to use.
diff --git a/keyboards/helix/rev2/keymaps/froggy_106/keymap.c b/keyboards/helix/rev2/keymaps/froggy_106/keymap.c
index 3a433e56fda0..a92b05566e39 100644
--- a/keyboards/helix/rev2/keymaps/froggy_106/keymap.c
+++ b/keyboards/helix/rev2/keymaps/froggy_106/keymap.c
@@ -5,7 +5,24 @@
#include "ssd1306.h"
#endif
-extern uint8_t is_master;
+#define LAYOUT_half( \
+ L00, L01, L02, L03, L04, L05, \
+ L10, L11, L12, L13, L14, L15, \
+ L20, L21, L22, L23, L24, L25, \
+ L30, L31, L32, L33, L34, L35, L36, \
+ L40, L41, L42, L43, L44, L45, L46 \
+) { \
+ { L00, L01, L02, L03, L04, L05, KC_NO }, \
+ { L10, L11, L12, L13, L14, L15, KC_NO }, \
+ { L20, L21, L22, L23, L24, L25, KC_NO }, \
+ { L30, L31, L32, L33, L34, L35, L36 }, \
+ { L40, L41, L42, L43, L44, L45, L46 }, \
+ { _______, _______, _______, _______, _______, _______, KC_NO }, \
+ { _______, _______, _______, _______, _______, _______, KC_NO }, \
+ { _______, _______, _______, _______, _______, _______, KC_NO }, \
+ { _______, _______, _______, _______, _______, _______, _______ }, \
+ { _______, _______, _______, _______, _______, _______, _______ } \
+}
#define DELAY_TIME 75
static uint16_t key_timer;
@@ -83,136 +100,136 @@ enum macro_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
- * ,-----------------------------------------. ,-----------------------------------------.
- * | C+z | ; | [ | ( | < | { | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | KANA | P | K | R | A | F | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | BS | D | T | H | E | O | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Y | S | N | I | U |Space | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Gui | Sym | Num | OPT | Ent | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | C+z | ; | [ | ( | < | { |
+ * |------+------+------+------+------+------|
+ * | KANA | P | K | R | A | F |
+ * |------+------+------+------+------+------|
+ * | BS | D | T | H | E | O |
+ * |------+------+------+------+------+------+------.
+ * | Shift| Y | S | N | I | U |Space |
+ * |------+------+------+------+------+------+------|
+ * | Ctrl | Alt | Gui | Sym | Num | OPT | Ent |
+ * `------------------------------------------------'
*/
- [_BASE] = LAYOUT( \
- LCTL(KC_Z), KC_SCLN, KC_LBRC, KC_LPRN, KC_LT, KC_LCBR, _______, _______, _______, _______, _______, _______, \
- KANA, KC_P, KC_K, KC_R, KC_A, KC_F, _______, _______, _______, _______, _______, _______, \
- KC_BSPC, KC_D, KC_T, KC_H, KC_E, KC_O, _______, _______, _______, _______, _______, _______, \
- OSM(MOD_LSFT), KC_Y, KC_S, KC_N, KC_I, KC_U, KC_SPC, _______, _______, _______, _______, _______, _______, _______, \
- OSM(MOD_LCTL), OSM(MOD_LALT), OSM(MOD_LGUI), L_SYM, L_NUM, OPT_TAP_SP, KC_ENT, _______, _______, _______, _______, _______, _______, _______ \
+ [_BASE] = LAYOUT_half( \
+ LCTL(KC_Z), KC_SCLN, KC_LBRC, KC_LPRN, KC_LT, KC_LCBR, \
+ KANA, KC_P, KC_K, KC_R, KC_A, KC_F, \
+ KC_BSPC, KC_D, KC_T, KC_H, KC_E, KC_O, \
+ OSM(MOD_LSFT), KC_Y, KC_S, KC_N, KC_I, KC_U, KC_SPC, \
+ OSM(MOD_LCTL), OSM(MOD_LALT), OSM(MOD_LGUI), L_SYM, L_NUM, OPT_TAP_SP, KC_ENT \
),
- [_BASE_106] = LAYOUT( \
- LCTL(KC_Z), JP_SCLN, JP_LBRC, JP_LPRN, JP_LABK, JP_LCBR, _______, _______, _______, _______, _______, _______, \
- KANA, KC_P, KC_K, KC_R, KC_A, KC_F, _______, _______, _______, _______, _______, _______, \
- KC_BSPC, KC_D, KC_T, KC_H, KC_E, KC_O, _______, _______, _______, _______, _______, _______, \
- OSM(MOD_LSFT), KC_Y, KC_S, KC_N, KC_I, KC_U, KC_SPC, _______, _______, _______, _______, _______, _______, _______, \
- OSM(MOD_LCTL), OSM(MOD_LALT), OSM(MOD_LGUI), L_SYM, L_NUM, OPT_TAP_SP, KC_ENT, _______, _______, _______, _______, _______, _______, _______ \
+ [_BASE_106] = LAYOUT_half( \
+ LCTL(KC_Z), JP_SCLN, JP_LBRC, JP_LPRN, JP_LABK, JP_LCBR, \
+ KANA, KC_P, KC_K, KC_R, KC_A, KC_F, \
+ KC_BSPC, KC_D, KC_T, KC_H, KC_E, KC_O, \
+ OSM(MOD_LSFT), KC_Y, KC_S, KC_N, KC_I, KC_U, KC_SPC, \
+ OSM(MOD_LCTL), OSM(MOD_LALT), OSM(MOD_LGUI), L_SYM, L_NUM, OPT_TAP_SP, KC_ENT \
),
/* Opt
- * ,-----------------------------------------. ,-----------------------------------------.
- * | Esc | : | ] | ) | > | } | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | EISU| J | M | B | ' | Tab | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | . | V | C | L | Z | Q | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | X | G | W | - | Del | Esc | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | , | DTOP | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | Esc | : | ] | ) | > | } |
+ * |------+------+------+------+------+------|
+ * | EISU| J | M | B | ' | Tab |
+ * |------+------+------+------+------+------|
+ * | . | V | C | L | Z | Q |
+ * |------+------+------+------+------+------+------.
+ * | | X | G | W | - | Del | Esc |
+ * |------+------+------+------+------+------+------|
+ * | | | | , | DTOP | | |
+ * `------------------------------------------------'
*/
- [_OPT] = LAYOUT( \
- KC_ESC, KC_COLN,KC_RBRC, KC_RPRN,KC_GT, KC_RCBR, _______, _______, _______, _______, _______, _______, \
- EISU, KC_J, KC_M, KC_B, KC_QUOT, KC_TAB, _______, _______, _______, _______, _______, _______, \
- KC_DOT, KC_V, KC_C, KC_L, KC_Z, KC_Q, _______, _______, _______, _______, _______, _______, \
- _______, KC_X, KC_G, KC_W, KC_MINUS, KC_DEL, KC_ESC, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______,_______, KC_COMM,DESKTOP, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_OPT] = LAYOUT_half( \
+ KC_ESC, KC_COLN,KC_RBRC, KC_RPRN,KC_GT, KC_RCBR, \
+ EISU, KC_J, KC_M, KC_B, KC_QUOT, KC_TAB, \
+ KC_DOT, KC_V, KC_C, KC_L, KC_Z, KC_Q, \
+ _______, KC_X, KC_G, KC_W, KC_MINUS, KC_DEL, KC_ESC, \
+ _______, _______,_______, KC_COMM,DESKTOP, _______, _______ \
),
- [_OPT_106] = LAYOUT( \
- KC_ESC, JP_COLN,JP_RBRC, JP_RPRN,JP_RABK, JP_RCBR, _______, _______, _______, _______, _______, _______, \
- EISU, KC_J, KC_M, KC_B, JP_QUOT, KC_TAB, _______, _______, _______, _______, _______, _______, \
- KC_DOT, KC_V, KC_C, KC_L, KC_Z, KC_Q, _______, _______, _______, _______, _______, _______, \
- _______, KC_X, KC_G, KC_W, JP_MINS, KC_DEL, KC_ESC, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______,_______, KC_COMM,DESKTOP, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_OPT_106] = LAYOUT_half( \
+ KC_ESC, JP_COLN,JP_RBRC, JP_RPRN,JP_RABK, JP_RCBR, \
+ EISU, KC_J, KC_M, KC_B, JP_QUOT, KC_TAB, \
+ KC_DOT, KC_V, KC_C, KC_L, KC_Z, KC_Q, \
+ _______, KC_X, KC_G, KC_W, JP_MINS, KC_DEL, KC_ESC, \
+ _______, _______,_______, KC_COMM,DESKTOP, _______, _______ \
),
/* Sym
- * ,-----------------------------------------. ,-----------------------------------------.
- * | Ins | GRV | | PU | PD | ^ | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | \ | # | = | ? | % | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | $ | upA | @ | ! | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | CL | <- | dwA | -> | _ | & | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | PS | | ~ | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | Ins | GRV | | PU | PD | ^ |
+ * |------+------+------+------+------+------|
+ * | | \ | # | = | ? | % |
+ * |------+------+------+------+------+------|
+ * | | $ | upA | @ | ! | | |
+ * |------+------+------+------+------+------+------.
+ * | CL | <- | dwA | -> | _ | & | |
+ * |------+------+------+------+------+------+------+
+ * | | | PS | | ~ | | |
+ * `------------------------------------------------'
*/
- [_SYM] = LAYOUT( \
- KC_INS, KC_GRV, _______, KC_PGUP, KC_PGDN, KC_CIRC, _______, _______, _______, _______, _______, _______, \
- _______, KC_BSLS, KC_HASH, KC_EQL, KC_QUES, KC_PERC, _______, _______, _______, _______, _______, _______, \
- _______, KC_DLR, KC_UP, KC_AT, KC_EXLM, KC_PIPE, _______, _______, _______, _______, _______, _______, \
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_UNDS, KC_AMPR, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, KC_PSCR, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_SYM] = LAYOUT_half( \
+ KC_INS, KC_GRV, _______, KC_PGUP, KC_PGDN, KC_CIRC, \
+ _______, KC_BSLS, KC_HASH, KC_EQL, KC_QUES, KC_PERC, \
+ _______, KC_DLR, KC_UP, KC_AT, KC_EXLM, KC_PIPE, \
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_UNDS, KC_AMPR, _______, \
+ _______, _______, KC_PSCR, _______, KC_TILD, _______, _______ \
),
- [_SYM_106] = LAYOUT( \
- KC_INS, JP_GRV, _______, KC_PGUP, KC_PGDN, JP_CIRC, _______, _______, _______, _______, _______, _______, \
- _______, JP_BSLS, JP_HASH, JP_EQL, JP_QUES, JP_PERC, _______, _______, _______, _______, _______, _______, \
- _______, JP_DLR, KC_UP, JP_AT, JP_EXLM, JP_PIPE, _______, _______, _______, _______, _______, _______, \
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT,JP_UNDS, JP_AMPR, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, KC_PSCR, _______, JP_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_SYM_106] = LAYOUT_half( \
+ KC_INS, JP_GRV, _______, KC_PGUP, KC_PGDN, JP_CIRC, \
+ _______, JP_BSLS, JP_HASH, JP_EQL, JP_QUES, JP_PERC, \
+ _______, JP_DLR, KC_UP, JP_AT, JP_EXLM, JP_PIPE, \
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT,JP_UNDS, JP_AMPR, _______, \
+ _______, _______, KC_PSCR, _______, JP_TILD, _______, _______ \
),
/* Raise
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | Func | home | End | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | * | 7 | 8 | 9 | - | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | . | / | 4 | 5 | 6 | + | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | LN | 0 | 1 | 2 | 3 |C+S+F1| | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | . | , | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * | | | Func | home | End | |
+ * |------+------+------+------+------+------|
+ * | | * | 7 | 8 | 9 | - |
+ * |------+------+------+------+------+------|
+ * | . | / | 4 | 5 | 6 | + |
+ * |------+------+------+------+------+------+------.
+ * | LN | 0 | 1 | 2 | 3 |C+S+F1| |
+ * |------+------+------+------+------+------+------|
+ * | | | . | , | | | |
+ * `------------------------------------------------'
*/
- [_NUM] = LAYOUT( \
- _______, _______, OSL(_FUNC), KC_HOME, KC_END, _______, _______, _______, _______, _______, _______, _______, \
- _______, KC_ASTR, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, _______, _______, _______, _______, \
- KC_DOT, KC_SLSH, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, _______, _______, _______, _______, _______, \
- KC_NLCK, KC_P0, KC_P1, KC_P2, KC_P3, LCTL(S(KC_F1)), _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, KC_PDOT, KC_COMM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_NUM] = LAYOUT_half( \
+ _______, _______, OSL(_FUNC), KC_HOME, KC_END, _______, \
+ _______, KC_ASTR, KC_P7, KC_P8, KC_P9, KC_MINS, \
+ KC_DOT, KC_SLSH, KC_P4, KC_P5, KC_P6, KC_PLUS, \
+ KC_NLCK, KC_P0, KC_P1, KC_P2, KC_P3, LCTL(S(KC_F1)), _______, \
+ _______, _______, KC_PDOT, KC_COMM, _______, _______, _______ \
),
- [_NUM_106] = LAYOUT( \
- _______, _______, OSL(_FUNC), KC_HOME, KC_END, _______, _______, _______, _______, _______, _______, _______, \
- _______, JP_ASTR, KC_P7, KC_P8, KC_P9, JP_MINS, _______, _______, _______, _______, _______, _______, \
- KC_DOT, JP_SLSH, KC_P4, KC_P5, KC_P6, JP_PLUS, _______, _______, _______, _______, _______, _______, \
- KC_NLCK, KC_P0, KC_P1, KC_P2, KC_P3, LCTL(S(KC_F1)), _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, _______, KC_PDOT, JP_COMM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_NUM_106] = LAYOUT_half( \
+ _______, _______, OSL(_FUNC), KC_HOME, KC_END, _______, \
+ _______, JP_ASTR, KC_P7, KC_P8, KC_P9, JP_MINS, \
+ KC_DOT, JP_SLSH, KC_P4, KC_P5, KC_P6, JP_PLUS, \
+ KC_NLCK, KC_P0, KC_P1, KC_P2, KC_P3, LCTL(S(KC_F1)), _______, \
+ _______, _______, KC_PDOT, JP_COMM, _______, _______, _______ \
),
/* Func
- * ,-----------------------------------------. ,-----------------------------------------.
- * |RGBRST| Hue |To101 | RST | Mac | Win | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | RGB1 | VAL+ | F7 | F8 | F9 |To106 | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | RGB2 | VAL- | F4 | F5 | F6 | F12 | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | RGB3 | F10 | F1 | F2 | F3 | F11 | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * |RGBOFF| | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
+ * ,-----------------------------------------.
+ * |RGBRST| Hue |To101 | RST | Mac | Win |
+ * |------+------+------+------+------+------|
+ * | RGB1 | VAL+ | F7 | F8 | F9 |To106 |
+ * |------+------+------+------+------+------|
+ * | RGB2 | VAL- | F4 | F5 | F6 | F12 |
+ * |------+------+------+------+------+------+------.
+ * | RGB3 | F10 | F1 | F2 | F3 | F11 | |
+ * |------+------+------+------+------+------+------|
+ * |RGBOFF| | | | | | |
+ * `------------------------------------------------'
*/
- [_FUNC] = LAYOUT( \
- RGBRST,RGB_HUI, TO_101, RESET, MAC, WIN, _______, _______, _______, _______, _______, _______, \
- RGB1, RGB_VAI, KC_F7, KC_F8, KC_F9, TO_106, _______, _______, _______, _______, _______, _______, \
- RGB2, RGB_VAD, KC_F4, KC_F5, KC_F6, KC_F12, _______, _______, _______, _______, _______, _______, \
- RGB3, KC_F10, KC_F1, KC_F2, KC_F3, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______, \
- RGBOFF,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ [_FUNC] = LAYOUT_half( \
+ RGBRST,RGB_HUI, TO_101, RESET, MAC, WIN, \
+ RGB1, RGB_VAI, KC_F7, KC_F8, KC_F9, TO_106, \
+ RGB2, RGB_VAD, KC_F4, KC_F5, KC_F6, KC_F12, \
+ RGB3, KC_F10, KC_F1, KC_F2, KC_F3, KC_F11, _______, \
+ RGBOFF,_______, _______, _______, _______, _______, _______ \
)
};
#else
@@ -317,7 +334,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef RGBLIGHT_ENABLE
col = record->event.key.col;
row = record->event.key.row;
- if (record->event.pressed && ((row < 5 && is_master) || (row >= 5 && !is_master))) {
+ if (record->event.pressed && ((row < 5 && is_keyboard_master()) || (row >= 5 && !is_keyboard_master()))) {
int end = keybuf_end;
keybufs[end].col = col;
keybufs[end].row = row % 5;
@@ -807,14 +824,139 @@ void iota_gfx_task_user(void) {
#endif
matrix_clear(&matrix);
- if(is_master){
+ if (is_keyboard_master()) {
render_status(&matrix);
}
matrix_update(&display, &matrix);
}
+#endif // end of SSD1306OLED
+
+//OLED update loop
+#ifdef OLED_ENABLE
+
+// Render to OLED
+void render_status(void) {
+
+ // froggy logo
+ static char logo[4][17]=
+ {
+ {0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0},
+ {0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0},
+ {0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0},
+ {0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0},
+ };
+
+ static char modectl[4][2][4]=
+ {
+ {
+ {0x65,0x66,0x67,0}, //WIN
+ {0x85,0x86,0x87,0}, //WIN
+ },
+ {
+ {0xa5,0xa6,0xa7,0}, //US(101)
+ {0xc5,0xc6,0xc7,0}, //US(101)
+ },
+ {
+ {0xbd,0xbe,0xbf,0}, //MAC
+ {0xdd,0xde,0xdf,0}, //MAC
+ },
+ {
+ {0xba,0xbb,0xbc,0}, //JP(106)
+ {0xda,0xdb,0xdc,0}, //JP(106)
+ },
+ };
+
+ static char indctr[8][2][4]=
+ {
+ // white icon
+ {
+ {0x60,0x61,0x62,0}, //NUM
+ {0x63,0x64,0} //FUNC
+ },
+ {
+ {0x80,0x81,0x82,0}, //NUM
+ {0x83,0x84,0} //FUNC
+ },
+ {
+ {0xa0,0xa1,0xa2,0}, //CAPS
+ {0xa3,0xa4,0} //SCLK
+ },
+ {
+ {0xc0,0xc1,0xc2,0}, //CAPS
+ {0xc3,0xc4,0} //SCLK
+ },
+ // Black icon
+ {
+ {0x75,0x76,0x77,0}, //NUM
+ {0x78,0x79,0} //FUNC
+ },
+ {
+ {0x95,0x96,0x97,0}, //NUM
+ {0x98,0x99,0} //FUNC
+ },
+ {
+ {0xb5,0xb6,0xb7,0}, //CAPS
+ {0xb8,0xb9,0} //SCLK
+ },
+ {
+ {0xd5,0xd6,0xd7,0}, //CAPS
+ {0xd8,0xd9,0} //SCLK
+ },
+ };
+
+ int rown = 0;
+ int rowf = 0;
+ int rowa = 0;
+ int rows = 0;
+ int rowm = 0;
+ int rowj = 1;
+
+ //Set Indicator icon
+ if (host_keyboard_leds() & (1<
Date: Wed, 13 Apr 2022 08:39:44 +0200
Subject: [PATCH 142/221] [Keyboard] Adding waffling80, TKL PCB (#16726)
Co-authored-by: Joel Challis
Co-authored-by: Ryan
---
keyboards/4pplet/waffling80/info.json | 10 ++++
.../waffling80/keymaps/default/keymap.c | 38 +++++++++++++
.../4pplet/waffling80/keymaps/via/keymap.c | 57 +++++++++++++++++++
.../4pplet/waffling80/keymaps/via/rules.mk | 1 +
keyboards/4pplet/waffling80/readme.md | 18 ++++++
keyboards/4pplet/waffling80/rev_a/config.h | 53 +++++++++++++++++
keyboards/4pplet/waffling80/rev_a/readme.md | 18 ++++++
keyboards/4pplet/waffling80/rev_a/rev_a.c | 47 +++++++++++++++
keyboards/4pplet/waffling80/rev_a/rev_a.h | 50 ++++++++++++++++
keyboards/4pplet/waffling80/rev_a/rules.mk | 18 ++++++
10 files changed, 310 insertions(+)
create mode 100644 keyboards/4pplet/waffling80/info.json
create mode 100644 keyboards/4pplet/waffling80/keymaps/default/keymap.c
create mode 100644 keyboards/4pplet/waffling80/keymaps/via/keymap.c
create mode 100644 keyboards/4pplet/waffling80/keymaps/via/rules.mk
create mode 100644 keyboards/4pplet/waffling80/readme.md
create mode 100644 keyboards/4pplet/waffling80/rev_a/config.h
create mode 100644 keyboards/4pplet/waffling80/rev_a/readme.md
create mode 100644 keyboards/4pplet/waffling80/rev_a/rev_a.c
create mode 100644 keyboards/4pplet/waffling80/rev_a/rev_a.h
create mode 100644 keyboards/4pplet/waffling80/rev_a/rules.mk
diff --git a/keyboards/4pplet/waffling80/info.json b/keyboards/4pplet/waffling80/info.json
new file mode 100644
index 000000000000..ca9272800004
--- /dev/null
+++ b/keyboards/4pplet/waffling80/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "waffling80 Rev A",
+ "url": "",
+ "maintainer": "4pplet",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"~", "x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"x":15.25, "y":3.5}, {"x":17.25, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"Fn", "x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":2.25}, {"x":6, "y":5.5, "w":1.25}, {"x":7.25, "y":5.5, "w":2.75}, {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, {"label":"Menu", "x":11.25, "y":5.5, "w":1.25}, {"label":"Win", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
+ }
+ }
+}
diff --git a/keyboards/4pplet/waffling80/keymaps/default/keymap.c b/keyboards/4pplet/waffling80/keymaps/default/keymap.c
new file mode 100644
index 000000000000..5331d7d3da99
--- /dev/null
+++ b/keyboards/4pplet/waffling80/keymaps/default/keymap.c
@@ -0,0 +1,38 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_F1, 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_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT,
+ MO(1), MO(1)) // extra keys for alps dual action switches
+// basic function layer
+[1] = LAYOUT_all(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS), // extra keys for alps dual action switches
+};
diff --git a/keyboards/4pplet/waffling80/keymaps/via/keymap.c b/keyboards/4pplet/waffling80/keymaps/via/keymap.c
new file mode 100644
index 000000000000..c816d56af641
--- /dev/null
+++ b/keyboards/4pplet/waffling80/keymaps/via/keymap.c
@@ -0,0 +1,57 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_F1, 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_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT,
+ MO(1), MO(1)), // extra keys for alps dual action switches
+// basic function layer
+[1] = LAYOUT_all(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS), // extra keys for alps dual action switches
+// extra layer for VIA
+[2] = LAYOUT_all(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS), // extra keys for alps dual action switches
+
+// extra layer for VIA
+[3] = LAYOUT_all(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS) // extra keys for alps dual action switches
+};
diff --git a/keyboards/4pplet/waffling80/keymaps/via/rules.mk b/keyboards/4pplet/waffling80/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/4pplet/waffling80/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling80/readme.md b/keyboards/4pplet/waffling80/readme.md
new file mode 100644
index 000000000000..3eb0745b3f37
--- /dev/null
+++ b/keyboards/4pplet/waffling80/readme.md
@@ -0,0 +1,18 @@
+# waffling80
+
+A TKL PCB attempting a87 compatibility with different switch and layout-options.
+
+* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
+* Hardware Supported: [waffling80](https://github.com/4pplet/waffling80)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make 4pplet/waffling80/rev_a:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+How to enter bootloader (DFU):
+* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
+
+Alternative option if the firmware is already pre-flashed:
+* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
diff --git a/keyboards/4pplet/waffling80/rev_a/config.h b/keyboards/4pplet/waffling80/rev_a/config.h
new file mode 100644
index 000000000000..715414b64179
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_a/config.h
@@ -0,0 +1,53 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4444
+#define PRODUCT_ID 0x0006
+#define DEVICE_VER 0x0001
+#define MANUFACTURER 4pplet
+#define PRODUCT waffling80 Rev A
+
+/* key matrix size */
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 8
+
+// ROWS: Top to bottom, COLS: Left to right
+#define MATRIX_ROW_PINS {C4,C5,B4,B3,B1,B0,D6,D5,D3,D4,D1,D2}
+#define MATRIX_COL_PINS {C6,C7,B7,B6,B5,B2,D0,C2}
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+#define QMK_ESC_OUTPUT C6 // usually COL
+#define QMK_ESC_INPUT C4 // usually ROW
+
+#define RGB_DI_PIN D7
+#define RGBLED_NUM 2
+
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/4pplet/waffling80/rev_a/readme.md b/keyboards/4pplet/waffling80/rev_a/readme.md
new file mode 100644
index 000000000000..7aee23ddb441
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_a/readme.md
@@ -0,0 +1,18 @@
+# waffling80
+
+A TKL PCB attempting a87 and a88 compatibility with different switch and layout-options.
+
+* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
+* Hardware Supported: [waffling80](https://github.com/4pplet/waffling80)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make 4pplet/waffling80/rev_a:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+How to enter bootloader (DFU):
+* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
+
+Alternative option if the firmware is already pre-flashed:
+* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
diff --git a/keyboards/4pplet/waffling80/rev_a/rev_a.c b/keyboards/4pplet/waffling80/rev_a/rev_a.c
new file mode 100644
index 000000000000..d1032e7c6c07
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_a/rev_a.c
@@ -0,0 +1,47 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#include "rev_a.h"
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (SCROLL_LOCK_ENABLE && res) {
+ if(led_state.scroll_lock) {
+ #ifdef SCROLL_LOCK_COLOR
+ rgblight_sethsv_at(SCROLL_LOCK_COLOR, 0);
+ #else
+ rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 0);
+ #endif
+ }
+ else {
+ rgblight_sethsv_at(HSV_OFF, 0);
+ }
+ }
+ if (CAPS_LOCK_ENABLE && res) {
+ if(led_state.caps_lock) {
+ #ifdef CAPS_LOCK_COLOR
+ rgblight_sethsv_at(CAPS_LOCK_COLOR, 1);
+ #else
+ rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 1);
+ #endif
+ }
+ else{
+ rgblight_sethsv_at(HSV_OFF, 1);
+ }
+ }
+ return res;
+}
+
diff --git a/keyboards/4pplet/waffling80/rev_a/rev_a.h b/keyboards/4pplet/waffling80/rev_a/rev_a.h
new file mode 100644
index 000000000000..d79fa17ebee5
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_a/rev_a.h
@@ -0,0 +1,50 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#pragma once
+
+#define CAPS_LOCK_ENABLE 1
+#define SCROLL_LOCK_ENABLE 1
+
+// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA.
+//#define CAPS_LOCK_COLOR HSV_GREEN
+//#define SCROLL_LOCK_COLOR HSV_GREEN
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k37, \
+ k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k67, k27, k57, k97, \
+ k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k77, kb7, \
+ k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, \
+ k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k96, k87, \
+ ka0, ka1, kb1, kb2, ka3, kb3, ka4, kb4, ka5, kb5, ka6, kb6, ka7, \
+ kb0, ka2 \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37}, \
+ {k40, k41, k42, k43, k44, k45, k46, k47}, \
+ {k50, k51, k52, k53, k54, k55, k56, k57}, \
+ {k60, k61, k62, k63, k64, k65, k66, k67}, \
+ {k70, k71, k72, k73, k74, k75, k76, k77}, \
+ {k80, k81, k82, k83, k84, k85, k86, k87}, \
+ {k90, k91, k92, k93, k94, k95, k96, k97}, \
+ {ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7}, \
+ {kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7} \
+}
diff --git a/keyboards/4pplet/waffling80/rev_a/rules.mk b/keyboards/4pplet/waffling80/rev_a/rules.mk
new file mode 100644
index 000000000000..7bc59aaef68a
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_a/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 6d816d94f7bf132a71cadbd08118469ac28c6480 Mon Sep 17 00:00:00 2001
From: 4pplet
Date: Wed, 13 Apr 2022 08:40:20 +0200
Subject: [PATCH 143/221] [Keyboard] Add ratio65 by rationalist (#16727)
Co-authored-by: Joel Challis
Co-authored-by: Ryan
---
.../rationalist/ratio65_hotswap/info.json | 10 +++
.../ratio65_hotswap/keymaps/default/keymap.c | 34 ++++++++++
.../ratio65_hotswap/keymaps/via/keymap.c | 48 ++++++++++++++
.../ratio65_hotswap/keymaps/via/rules.mk | 1 +
.../rationalist/ratio65_hotswap/readme.md | 18 ++++++
.../ratio65_hotswap/rev_a/config.h | 63 ++++++++++++++++++
.../rationalist/ratio65_hotswap/rev_a/rev_a.c | 17 +++++
.../rationalist/ratio65_hotswap/rev_a/rev_a.h | 40 ++++++++++++
.../ratio65_hotswap/rev_a/rules.mk | 18 ++++++
.../rationalist/ratio65_solder/info.json | 10 +++
.../ratio65_solder/keymaps/default/keymap.c | 34 ++++++++++
.../ratio65_solder/keymaps/via/keymap.c | 48 ++++++++++++++
.../ratio65_solder/keymaps/via/rules.mk | 1 +
.../rationalist/ratio65_solder/readme.md | 18 ++++++
.../rationalist/ratio65_solder/rev_a/config.h | 64 +++++++++++++++++++
.../rationalist/ratio65_solder/rev_a/rev_a.c | 17 +++++
.../rationalist/ratio65_solder/rev_a/rev_a.h | 40 ++++++++++++
.../rationalist/ratio65_solder/rev_a/rules.mk | 18 ++++++
18 files changed, 499 insertions(+)
create mode 100644 keyboards/rationalist/ratio65_hotswap/info.json
create mode 100644 keyboards/rationalist/ratio65_hotswap/keymaps/default/keymap.c
create mode 100644 keyboards/rationalist/ratio65_hotswap/keymaps/via/keymap.c
create mode 100644 keyboards/rationalist/ratio65_hotswap/keymaps/via/rules.mk
create mode 100644 keyboards/rationalist/ratio65_hotswap/readme.md
create mode 100644 keyboards/rationalist/ratio65_hotswap/rev_a/config.h
create mode 100644 keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.c
create mode 100644 keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.h
create mode 100644 keyboards/rationalist/ratio65_hotswap/rev_a/rules.mk
create mode 100644 keyboards/rationalist/ratio65_solder/info.json
create mode 100644 keyboards/rationalist/ratio65_solder/keymaps/default/keymap.c
create mode 100644 keyboards/rationalist/ratio65_solder/keymaps/via/keymap.c
create mode 100644 keyboards/rationalist/ratio65_solder/keymaps/via/rules.mk
create mode 100644 keyboards/rationalist/ratio65_solder/readme.md
create mode 100644 keyboards/rationalist/ratio65_solder/rev_a/config.h
create mode 100644 keyboards/rationalist/ratio65_solder/rev_a/rev_a.c
create mode 100644 keyboards/rationalist/ratio65_solder/rev_a/rev_a.h
create mode 100644 keyboards/rationalist/ratio65_solder/rev_a/rules.mk
diff --git a/keyboards/rationalist/ratio65_hotswap/info.json b/keyboards/rationalist/ratio65_hotswap/info.json
new file mode 100644
index 000000000000..709e929fa01e
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "Ratio65_HotSwap",
+ "url": "",
+ "maintainer": "4pplet",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Delete", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Insert", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Win", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
+ }
+ }
+}
diff --git a/keyboards/rationalist/ratio65_hotswap/keymaps/default/keymap.c b/keyboards/rationalist/ratio65_hotswap/keymaps/default/keymap.c
new file mode 100644
index 000000000000..1d095ea22bb3
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
+/*
+Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_INSERT,
+ 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT ),
+// basic function layer
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
+};
diff --git a/keyboards/rationalist/ratio65_hotswap/keymaps/via/keymap.c b/keyboards/rationalist/ratio65_hotswap/keymaps/via/keymap.c
new file mode 100644
index 000000000000..d677bb3c8afc
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
+/*
+Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_INSERT,
+ 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT ),
+// basic function layer 1
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+// basic function layer 2
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+// basic function layer 3
+[3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
+};
diff --git a/keyboards/rationalist/ratio65_hotswap/keymaps/via/rules.mk b/keyboards/rationalist/ratio65_hotswap/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/rationalist/ratio65_hotswap/readme.md b/keyboards/rationalist/ratio65_hotswap/readme.md
new file mode 100644
index 000000000000..07ff1137dd09
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/readme.md
@@ -0,0 +1,18 @@
+# Ratio65
+
+A 65% PCB for MX switches for Rationalist keyboards
+
+* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
+* Hardware Supported: Ratio65
+
+Make example for this keyboard (after setting up your build environment):
+
+ make rationalist/ratio65_hotswap/rev_a:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+How to enter bootloader (DFU):
+* Short the reset-header (labled RESET) on the back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
+
+Alternative option if the firmware is already pre-flashed:
+* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/config.h b/keyboards/rationalist/ratio65_hotswap/rev_a/config.h
new file mode 100644
index 000000000000..1bc8eb7fdf86
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/rev_a/config.h
@@ -0,0 +1,63 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4446
+#define PRODUCT_ID 0x0001
+#define DEVICE_VER 0x0001
+#define MANUFACTURER 4pplet
+#define PRODUCT Ratio65 Rev A HotSwap
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 8
+// ROWS: Top to bottom, COLS: Left to right
+
+#define MATRIX_ROW_PINS {D1,D0,D5,D4,C7,B7,C6,C5,B0,B1}
+#define MATRIX_COL_PINS {C2,D2,B6,B5,B4,B3,B2,D6}
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+#define QMK_ESC_OUTPUT C2 // usually COL
+#define QMK_ESC_INPUT D1 // usually ROW
+
+#define RGB_DI_PIN D3
+#define RGBLED_NUM 18
+
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#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
diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.c b/keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.c
new file mode 100644
index 000000000000..dc6c727fb7a9
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.c
@@ -0,0 +1,17 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#include "rev_a.h"
diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.h b/keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.h
new file mode 100644
index 000000000000..a9dd39ca9f60
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/rev_a/rev_a.h
@@ -0,0 +1,40 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#pragma once
+
+#include "quantum.h"
+
+// k
+#define LAYOUT_all( \
+ k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k07, k17,\
+ k20, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, \
+ k40, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k47, k57, \
+ k60, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k67, k77, \
+ k80, k81, k91, k83, k94, k95, k96, k87, k97 \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07}, \
+ {k10, k11, k12, k13, k14, k15, KC_NO, k17}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27}, \
+ {KC_NO, k31, k32, k33, k34, k35, k36, k37}, \
+ {k40, k41, k42, k43, k44, k45, k46, k47}, \
+ {KC_NO, k51, k52, k53, k54, k55, KC_NO, k57}, \
+ {k60, k61, k62, k63, k64, k65, k66, k67}, \
+ {KC_NO, k71, k72, k73, k74, k75, KC_NO, k77}, \
+ {k80, k81, KC_NO, k83, KC_NO, KC_NO, KC_NO, k87}, \
+ {KC_NO, k91, KC_NO, KC_NO, k94, k95, k96, k97} \
+}
diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/rules.mk b/keyboards/rationalist/ratio65_hotswap/rev_a/rules.mk
new file mode 100644
index 000000000000..88173a40c20e
--- /dev/null
+++ b/keyboards/rationalist/ratio65_hotswap/rev_a/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/rationalist/ratio65_solder/info.json b/keyboards/rationalist/ratio65_solder/info.json
new file mode 100644
index 000000000000..e083099bde32
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "Ratio65_Solder",
+ "url": "",
+ "maintainer": "4pplet",
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Del", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Insert", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Nuhs", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"Nubs", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Win", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
+ }
+ }
+}
diff --git a/keyboards/rationalist/ratio65_solder/keymaps/default/keymap.c b/keyboards/rationalist/ratio65_solder/keymaps/default/keymap.c
new file mode 100644
index 000000000000..892d1e8b670c
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
+/*
+Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, 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_INSERT,
+ 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_PGUP,
+ 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_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT ),
+// basic function layer
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
+};
diff --git a/keyboards/rationalist/ratio65_solder/keymaps/via/keymap.c b/keyboards/rationalist/ratio65_solder/keymaps/via/keymap.c
new file mode 100644
index 000000000000..3310c23f4ab9
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
+/*
+Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, 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_INSERT,
+ 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_PGUP,
+ 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_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT ),
+// basic function layer 1
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+// basic function layer 2
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+// basic function layer 3
+[3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
+};
diff --git a/keyboards/rationalist/ratio65_solder/keymaps/via/rules.mk b/keyboards/rationalist/ratio65_solder/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/rationalist/ratio65_solder/readme.md b/keyboards/rationalist/ratio65_solder/readme.md
new file mode 100644
index 000000000000..1129a5fbddc3
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/readme.md
@@ -0,0 +1,18 @@
+# Ratio65
+
+A 65% PCB for MX switches for Rationalist keyboards
+
+* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
+* Hardware Supported: Ratio65
+
+Make example for this keyboard (after setting up your build environment):
+
+ make rationalist/ratio65_solder/rev_a:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+How to enter bootloader (DFU):
+* Short the reset-header (labled RESET) on the back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
+
+Alternative option if the firmware is already pre-flashed:
+* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
diff --git a/keyboards/rationalist/ratio65_solder/rev_a/config.h b/keyboards/rationalist/ratio65_solder/rev_a/config.h
new file mode 100644
index 000000000000..824ebd3cb7b7
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/rev_a/config.h
@@ -0,0 +1,64 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4446
+#define PRODUCT_ID 0x0002
+#define DEVICE_VER 0x0001
+#define MANUFACTURER 4pplet
+#define PRODUCT Ratio65 Rev A Solder
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 8
+// ROWS: Top to bottom, COLS: Left to right
+
+#define MATRIX_ROW_PINS {D1,D0,D5,D4,C7,B7,C6,C5,B0,B1}
+#define MATRIX_COL_PINS {C2,D2,B6,B5,B4,B3,B2,D6}
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+#define QMK_ESC_OUTPUT C2 // usually COL
+#define QMK_ESC_INPUT D1 // usually ROW
+
+#define RGB_DI_PIN D3
+#define RGBLED_NUM 18
+
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#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
+
diff --git a/keyboards/rationalist/ratio65_solder/rev_a/rev_a.c b/keyboards/rationalist/ratio65_solder/rev_a/rev_a.c
new file mode 100644
index 000000000000..dc6c727fb7a9
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/rev_a/rev_a.c
@@ -0,0 +1,17 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#include "rev_a.h"
diff --git a/keyboards/rationalist/ratio65_solder/rev_a/rev_a.h b/keyboards/rationalist/ratio65_solder/rev_a/rev_a.h
new file mode 100644
index 000000000000..ae8735335f43
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/rev_a/rev_a.h
@@ -0,0 +1,40 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 .
+*/
+#pragma once
+
+#include "quantum.h"
+
+// k
+#define LAYOUT_all( \
+ k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17,\
+ k20, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, \
+ k40, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, \
+ k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k67, k77, \
+ k80, k81, k91, k83, k94, k95, k96, k87, k97 \
+) \
+{ \
+ {k00, k01, k02, k03, k04, k05, k06, k07}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27}, \
+ {KC_NO, k31, k32, k33, k34, k35, k36, k37}, \
+ {k40, k41, k42, k43, k44, k45, k46, k47}, \
+ {KC_NO, k51, k52, k53, k54, k55, k56, k57}, \
+ {k60, k61, k62, k63, k64, k65, k66, k67}, \
+ {k70, k71, k72, k73, k74, k75, KC_NO, k77}, \
+ {k80, k81, KC_NO, k83, KC_NO, KC_NO, KC_NO, k87}, \
+ {KC_NO, k91, KC_NO, KC_NO, k94, k95, k96, k97} \
+}
diff --git a/keyboards/rationalist/ratio65_solder/rev_a/rules.mk b/keyboards/rationalist/ratio65_solder/rev_a/rules.mk
new file mode 100644
index 000000000000..88173a40c20e
--- /dev/null
+++ b/keyboards/rationalist/ratio65_solder/rev_a/rules.mk
@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
From 935af9e9996083c2b7e82f67072899e87c7f45ab Mon Sep 17 00:00:00 2001
From: Allen Choi <37539914+Thunderbird2086@users.noreply.github.com>
Date: Wed, 13 Apr 2022 16:03:01 +0900
Subject: [PATCH 144/221] [Keymap] fixed oled turn-off issue for crkbd:gotham
(#16748)
---
keyboards/crkbd/keymaps/gotham/README.md | 1 -
keyboards/crkbd/keymaps/gotham/config.h | 11 ++++++++++-
keyboards/crkbd/keymaps/gotham/keymap.c | 1 +
keyboards/crkbd/keymaps/gotham/oled.c | 18 +++++++-----------
4 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/keyboards/crkbd/keymaps/gotham/README.md b/keyboards/crkbd/keymaps/gotham/README.md
index 23c1d4fdd81f..88120ae888af 100644
--- a/keyboards/crkbd/keymaps/gotham/README.md
+++ b/keyboards/crkbd/keymaps/gotham/README.md
@@ -10,7 +10,6 @@ My take on the 40% layout with programming in mind. Do read about the layers, it
## Custom OLED
This keymap includes custom OLED font and code. The font contains some logos and status indidcators for some of the features I use (RGB and Audio). Enable OLED in rukes.mk to check it out. Feel free to reuse the font or parts of it.
-__KNOWN BUG:__ When the computer sleeps, one of the OLEDs is always on (they don't turn off on their own, and the timeout doesn't work). I haven't been able to figure out what's going on there and am open to suggestions/PRs.
## Flashing
Flash using `make crkbd:gotham:avrdude` for Pro Micro and `make crkbd:gotham:dfu` for Elite-C.
diff --git a/keyboards/crkbd/keymaps/gotham/config.h b/keyboards/crkbd/keymaps/gotham/config.h
index 1ff008b2ded7..45fe8c37a839 100644
--- a/keyboards/crkbd/keymaps/gotham/config.h
+++ b/keyboards/crkbd/keymaps/gotham/config.h
@@ -20,7 +20,16 @@
# define AUDIO_CLICKY
#endif
-#define OLED_FONT_H "keyboards/crkbd/keymaps/gotham/glcdfont.c"
+#ifdef OLED_ENABLE
+# define OLED_FONT_H "keyboards/crkbd/keymaps/gotham/glcdfont.c"
+# define SPLIT_LAYER_STATE_ENABLE
+# define SPLIT_LED_STATE_ENABLE
+# define SPLIT_MODS_ENABLE
+# define SPLIT_OLED_ENABLE
+# undef OLED_TIMEOUT
+ // due to timer_read() for render_prompt(), we have own implementation of oled time out
+# define OLED_KEY_TIMEOUT 30000
+#endif
#define RGBLIGHT_SLEEP
diff --git a/keyboards/crkbd/keymaps/gotham/keymap.c b/keyboards/crkbd/keymaps/gotham/keymap.c
index 7cf4b7fd501b..a258794049da 100644
--- a/keyboards/crkbd/keymaps/gotham/keymap.c
+++ b/keyboards/crkbd/keymaps/gotham/keymap.c
@@ -81,6 +81,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef OLED_ENABLE
if (record->event.pressed) {
oled_timer = timer_read();
+ is_key_processed = true;
add_keylog(keycode);
}
#endif
diff --git a/keyboards/crkbd/keymaps/gotham/oled.c b/keyboards/crkbd/keymaps/gotham/oled.c
index baacc86b183a..6bf1233659f3 100644
--- a/keyboards/crkbd/keymaps/gotham/oled.c
+++ b/keyboards/crkbd/keymaps/gotham/oled.c
@@ -144,6 +144,7 @@ void render_feature_status(void) {
// Keylogger
#define KEYLOGGER_LENGTH 5
static uint16_t oled_timer = 0;
+static bool is_key_processed = true;
static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"};
// clang-format off
static const char PROGMEM code_to_name[0xFF] = {
@@ -247,18 +248,13 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
}
bool oled_task_user(void) {
- if (timer_elapsed(oled_timer) > 10000) {
- oled_off();
- return;
- }
- #ifndef SPLIT_KEYBOARD
- else {
- oled_on();
- }
- #endif
-
if (is_keyboard_master()) {
- render_status_main();
+ if (is_key_processed && (timer_elapsed(oled_timer) < OLED_KEY_TIMEOUT)) {
+ render_status_main();
+ } else {
+ is_key_processed = false;
+ oled_off();
+ }
} else {
render_status_secondary();
}
From dfe0515a4bfda7f291e2f051cf7fe3bb6a8e0f3a Mon Sep 17 00:00:00 2001
From: PJB Keyboard Design <91110483+602studios@users.noreply.github.com>
Date: Wed, 13 Apr 2022 00:04:14 -0700
Subject: [PATCH 145/221] [Keyboard] Add Eros by PJB (#16756)
Co-authored-by: Ryan
Co-authored-by: Joel Challis
---
keyboards/pjb/eros/config.h | 39 ++++++
keyboards/pjb/eros/eros.c | 17 +++
keyboards/pjb/eros/eros.h | 134 ++++++++++++++++++++
keyboards/pjb/eros/info.json | 35 +++++
keyboards/pjb/eros/keymaps/default/keymap.c | 27 ++++
keyboards/pjb/eros/keymaps/via/keymap.c | 51 ++++++++
keyboards/pjb/eros/keymaps/via/rules.mk | 2 +
keyboards/pjb/eros/readme.md | 20 +++
keyboards/pjb/eros/rules.mk | 17 +++
9 files changed, 342 insertions(+)
create mode 100644 keyboards/pjb/eros/config.h
create mode 100644 keyboards/pjb/eros/eros.c
create mode 100644 keyboards/pjb/eros/eros.h
create mode 100644 keyboards/pjb/eros/info.json
create mode 100644 keyboards/pjb/eros/keymaps/default/keymap.c
create mode 100644 keyboards/pjb/eros/keymaps/via/keymap.c
create mode 100644 keyboards/pjb/eros/keymaps/via/rules.mk
create mode 100644 keyboards/pjb/eros/readme.md
create mode 100644 keyboards/pjb/eros/rules.mk
diff --git a/keyboards/pjb/eros/config.h b/keyboards/pjb/eros/config.h
new file mode 100644
index 000000000000..038e13c9adeb
--- /dev/null
+++ b/keyboards/pjb/eros/config.h
@@ -0,0 +1,39 @@
+/* Copyright 2022 PJB
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+#define VENDOR_ID 0x5042 // TG
+#define PRODUCT_ID 0x4552 // JC
+#define DEVICE_VER 0x0200
+#define MANUFACTURER PJB
+#define PRODUCT Eros
+
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+#define MATRIX_ROW_PINS { B2, B1, B0, D7, B7, D1 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, D4, D5, B4, D3, D2, E6, B3 }
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
+#define DEBOUNCE 5
+
+#define LED_CAPS_LOCK_PIN D6
+#define LED_SCROLL_LOCK_PIN D0
+#define LED_PIN_ON_STATE 0
diff --git a/keyboards/pjb/eros/eros.c b/keyboards/pjb/eros/eros.c
new file mode 100644
index 000000000000..6dd56bfa7b37
--- /dev/null
+++ b/keyboards/pjb/eros/eros.c
@@ -0,0 +1,17 @@
+/* Copyright 2022 PJB
+ *
+ * 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 .
+ */
+
+#include "eros.h"
diff --git a/keyboards/pjb/eros/eros.h b/keyboards/pjb/eros/eros.h
new file mode 100644
index 000000000000..aa46d6f653d1
--- /dev/null
+++ b/keyboards/pjb/eros/eros.h
@@ -0,0 +1,134 @@
+/* Copyright 2022 PJB
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+
+#define LAYOUT_all_f13( \
+ 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, K313, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
+ K500, K501, K502, K505, K509, K510, K511, K513, 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, K313, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \
+ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, KC_NO, K513, K514, K515, K516 }, \
+}
+
+#define LAYOUT_tkl_ansi_f13( \
+ 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, K313, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K415, \
+ K500, K501, K502, K505, K509, K510, K511, K513, 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, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, KC_NO, KC_NO, K415, KC_NO }, \
+ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, KC_NO, K513, K514, K515, K516 }, \
+}
+
+#define LAYOUT_tkl_ansi_f13_split_shift( \
+ 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, K313, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
+ K500, K501, K502, K505, K509, K510, K511, K513, 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, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \
+ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, KC_NO, K513, K514, K515, K516 }, \
+}
+
+#define LAYOUT_tkl_ansi_f13_split_back( \
+ 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, K313, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K415, \
+ K500, K501, K502, K505, K509, K510, K511, K513, 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, K313, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, KC_NO, KC_NO, K415, KC_NO }, \
+ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, KC_NO, K513, K514, K515, K516 }, \
+}
+
+#define LAYOUT_tkl_ansi_tsangan_f13( \
+ 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, K313, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K415, \
+ K500, K501, K502, K505, K510, K511, K513, 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, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, KC_NO, KC_NO, K415, KC_NO }, \
+ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515, K516 }, \
+}
+
+#define LAYOUT_tkl_ansi_tsangan_f13_split_shift( \
+ 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, K313, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
+ K500, K501, K502, K505, K510, K511, K513, 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, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \
+ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515, K516 }, \
+}
+
+#define LAYOUT_tkl_ansi_tsangan_f13_split_back( \
+ 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, K313, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K415, \
+ K500, K501, K502, K505, K510, K511, K513, 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, K313, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, KC_NO, KC_NO, K415, KC_NO }, \
+ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514, K515, K516 }, \
+}
diff --git a/keyboards/pjb/eros/info.json b/keyboards/pjb/eros/info.json
new file mode 100644
index 000000000000..7c0439e45381
--- /dev/null
+++ b/keyboards/pjb/eros/info.json
@@ -0,0 +1,35 @@
+{
+ "keyboard_name": "PJB eros",
+ "url": "https://github.com/602studios",
+ "maintainer": "PJB",
+ "layouts": {
+ "LAYOUT_all_f13": {
+ "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}],
+ },
+
+ "LAYOUT_tkl_ansi_f13": {
+ "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}]
+ },
+
+ "LAYOUT_tkl_ansi_f13_split_shift": {
+ "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}]
+ },
+
+ "LAYOUT_tkl_ansi_f13_split_back": {
+ "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.25}, {"x":1.25, "y":5.25, "w":1.25}, {"x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"x":10, "y":5.25, "w":1.25}, {"x":11.25, "y":5.25, "w":1.25}, {"x":12.5, "y":5.25, "w":1.25}, {"x":13.75, "y":5.25, "w":1.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}]
+ },
+
+ "LAYOUT_tkl_ansi_tsangan_f13": {
+ "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.5}, {"x":1.5, "y":5.25}, {"x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"x":11, "y":5.25, "w":1.5}, {"x":12.5, "y":5.25}, {"x":13.5, "y":5.25, "w":1.5}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}]
+ },
+
+ "LAYOUT_tkl_ansi_tsangan_f13_split_shift": {
+ "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":1.75}, {"x":14, "y":4.25}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.5}, {"x":1.5, "y":5.25}, {"x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"x":11, "y":5.25, "w":1.5}, {"x":12.5, "y":5.25}, {"x":13.5, "y":5.25, "w":1.5}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}]
+ },
+
+ "LAYOUT_tkl_ansi_tsangan_f13_split_back": {
+ "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25}, {"x":14, "y":1.25}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":17.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":17.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":16.25, "y":4.25}, {"x":0, "y":5.25, "w":1.5}, {"x":1.5, "y":5.25}, {"x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"x":11, "y":5.25, "w":1.5}, {"x":12.5, "y":5.25}, {"x":13.5, "y":5.25, "w":1.5}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}, {"x":17.25, "y":5.25}]
+ },
+
+ }
+}
diff --git a/keyboards/pjb/eros/keymaps/default/keymap.c b/keyboards/pjb/eros/keymaps/default/keymap.c
new file mode 100644
index 000000000000..f54a2a2de9b1
--- /dev/null
+++ b/keyboards/pjb/eros/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+/* Copyright 2022 PJB
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_all_f13(
+ 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_PSCR,KC_SLCK,KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_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_BSLS, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, MO(1), KC_UP,
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT)
+};
diff --git a/keyboards/pjb/eros/keymaps/via/keymap.c b/keyboards/pjb/eros/keymaps/via/keymap.c
new file mode 100644
index 000000000000..0a6ad297cae9
--- /dev/null
+++ b/keyboards/pjb/eros/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
+/* Copyright 2022 PJB
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_all_f13(
+ 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_PSCR,KC_SLCK,KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_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_BSLS, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, MO(1), KC_UP,
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT),
+
+[1] = LAYOUT_all_f13(
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, 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_f13(
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, 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_f13(
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS),
+};
diff --git a/keyboards/pjb/eros/keymaps/via/rules.mk b/keyboards/pjb/eros/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/pjb/eros/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/pjb/eros/readme.md b/keyboards/pjb/eros/readme.md
new file mode 100644
index 000000000000..b72f808dce43
--- /dev/null
+++ b/keyboards/pjb/eros/readme.md
@@ -0,0 +1,20 @@
+# Eros
+
+TKL Custom Keyboard with F13 key
+
+* Keyboard Maintainer: [Phil](https://github.com/602studios)
+* Hardware Supported: Eros TKL PCB
+* Hardware Availability: [Geekhack Group Buy]( https://geekhack.org/index.php?topic=115569.0)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make pjb/eros/default
+
+Flashing example for this keyboard:
+
+ make pjb/eros/default:flash
+
+**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
+
+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).
+
diff --git a/keyboards/pjb/eros/rules.mk b/keyboards/pjb/eros/rules.mk
new file mode 100644
index 000000000000..696b8ca99e12
--- /dev/null
+++ b/keyboards/pjb/eros/rules.mk
@@ -0,0 +1,17 @@
+# 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 = yes # Commands for debug and configuration
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Enable audio output
From b8cb147573b39f5c613569d19e8a9ed4f6252676 Mon Sep 17 00:00:00 2001
From: Adam Lickel
Date: Wed, 13 Apr 2022 00:45:42 -0700
Subject: [PATCH 146/221] [Keymap] sinc/lickel: Use backlight keys in Fn Row
(#16789)
---
keyboards/keebio/bdn9/keymaps/lickel/readme.md | 2 +-
keyboards/keebio/sinc/keymaps/lickel/keymap.c | 2 +-
keyboards/keebio/sinc/keymaps/lickel/readme.md | 8 ++++++--
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/keyboards/keebio/bdn9/keymaps/lickel/readme.md b/keyboards/keebio/bdn9/keymaps/lickel/readme.md
index b729319b99c5..973cfb4a6d07 100644
--- a/keyboards/keebio/bdn9/keymaps/lickel/readme.md
+++ b/keyboards/keebio/bdn9/keymaps/lickel/readme.md
@@ -12,6 +12,6 @@
## Changelog
-### 1/17/2022 - 1.0
+### 2022-01-17 - 1.0
- Initial release
diff --git a/keyboards/keebio/sinc/keymaps/lickel/keymap.c b/keyboards/keebio/sinc/keymaps/lickel/keymap.c
index abdb33e93643..258e7d0128f9 100644
--- a/keyboards/keebio/sinc/keymaps/lickel/keymap.c
+++ b/keyboards/keebio/sinc/keymaps/lickel/keymap.c
@@ -32,7 +32,7 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_80_with_macro(
- KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MPLY,
+ KC_MUTE, KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, BL_DEC, BL_INC, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MPLY,
KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME,
KC_F3, KC_F4, 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_F5, KC_F6, 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_PGDN,
diff --git a/keyboards/keebio/sinc/keymaps/lickel/readme.md b/keyboards/keebio/sinc/keymaps/lickel/readme.md
index a41c16de236f..7be7baae2983 100644
--- a/keyboards/keebio/sinc/keymaps/lickel/readme.md
+++ b/keyboards/keebio/sinc/keymaps/lickel/readme.md
@@ -7,12 +7,16 @@
- Left macros are: F1->F10
- Right macros are: Play, Home, Pg Up, Pg Dn, End, Right
-![Layout](https://i.imgur.com/uQnzMSe.png)
+![Layout](https://i.imgur.com/0uXXrJY.png)
([KLE](http://www.keyboard-layout-editor.com/#/gists/e0350d8914cac3166abcca6abfd093b7))
## Changelog
-### 11/27/2021 - 1.0
+### 2022-03-04 - 1.1
+
+- Correct function row to change LED backlights, not underglow
+
+### 2021-11-27 - 1.0
- Initial release
From 1f2b1dedccdf21b629c45ece80b4ca32f6653296 Mon Sep 17 00:00:00 2001
From: Nick Brassel
Date: Wed, 13 Apr 2022 18:00:18 +1000
Subject: [PATCH 147/221] Quantum Painter (#10174)
* Install dependencies before executing unit tests.
* Split out UTF-8 decoder.
* Fixup python formatting rules.
* Add documentation for QGF/QFF and the RLE format used.
* Add CLI commands for converting images and fonts.
* Add stub rules.mk for QP.
* Add stream type.
* Add base driver and comms interfaces.
* Add support for SPI, SPI+D/C comms drivers.
* Include