summaryrefslogtreecommitdiff
path: root/keyboards/kprepublic/bm40hsrgb
diff options
context:
space:
mode:
authorpeepeetee <43021794+peepeetee@users.noreply.github.com>2021-08-21 22:53:49 -0500
committerGitHub <noreply@github.com>2021-08-22 13:53:49 +1000
commit78ccd9c201199444bc06161b05ee8d7ba9c31613 (patch)
tree726d9e55d8cde510fe72bc1fb9bb2a7dabdbecc2 /keyboards/kprepublic/bm40hsrgb
parentc70abc8d047319830e369ae4e14cd43bae3bd3b8 (diff)
Organize KPrepublic, K.T.E.C, xiudi boards into directories (#12159)
* reset; redoing my steps; and recommit * include xd002/.noci
Diffstat (limited to 'keyboards/kprepublic/bm40hsrgb')
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/bm40hsrgb.c53
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/bm40hsrgb.h30
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/config.h57
-rw-r--r--keyboards/kprepublic/bm40hsrgb/info.json60
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c108
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md1
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h80
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c241
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md117
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk7
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h80
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c214
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md117
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk7
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h80
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c178
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md117
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk7
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c108
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md1
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk2
-rw-r--r--keyboards/kprepublic/bm40hsrgb/readme.md21
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rules.mk26
23 files changed, 1712 insertions, 0 deletions
diff --git a/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c b/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c
new file mode 100755
index 0000000000..a0ba84db3c
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c
@@ -0,0 +1,53 @@
+/* Copyright 2020 tominabox1, Richard Goulter <richard.goulter@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "bm40hsrgb.h"
+
+#if defined(RGB_MATRIX_ENABLE)
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11},
+ {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23},
+ {24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35},
+ {36, 37, 38, 39, 40, 41, NO_LED, 42, 43, 44, 45, 46}
+ }, {
+ // LED Index to Physical Position
+ { 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0},
+ { 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21},
+ { 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42},
+ { 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {111, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64},
+ {220, 32}, {176, 32}, {132, 32}, {88, 32}, {44, 32}, {0, 32}
+ }, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2
+ }
+};
+
+
+void suspend_power_down_kb(void) {
+ rgb_matrix_set_suspend_state(true);
+ suspend_power_down_user();
+}
+
+void suspend_wakeup_init_kb(void) {
+ rgb_matrix_set_suspend_state(false);
+ suspend_wakeup_init_user();
+}
+#endif
diff --git a/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.h b/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.h
new file mode 100755
index 0000000000..5bde6ec9c5
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.h
@@ -0,0 +1,30 @@
+/* Copyright 2020 tominabox1
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+#include "quantum.h"
+
+#define LAYOUT_planck_mit( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
+ K300, K301, K302, K303, K304, K305, K307, K308, K309, K310, K311 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \
+ { K300, K301, K302, K303, K304, K305, KC_NO, K307, K308, K309, K310, K311 } \
+}
+
diff --git a/keyboards/kprepublic/bm40hsrgb/config.h b/keyboards/kprepublic/bm40hsrgb/config.h
new file mode 100755
index 0000000000..554927a496
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/config.h
@@ -0,0 +1,57 @@
+/* Copyright 2020 tominabox1
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4B50 // "KP"
+#define PRODUCT_ID 0x3430 // "40"
+#define DEVICE_VER 0x0001
+#define MANUFACTURER KPRepublic
+#define PRODUCT BM40 Hotswap RGB
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { B3, B2, E6, B5 }
+#define MATRIX_COL_PINS { B6, C6, B4, D7, D4, D6, C7, F6, F5, F4, F1, F0 }
+#define UNUSED_PINS
+
+/* COL2ROW or 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
+
+#define RGB_DI_PIN E2
+#define DRIVER_LED_TOTAL 53
+#ifdef RGB_DI_PIN
+# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
+#endif
+#ifdef RGB_MATRIX_ENABLE
+# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
+#endif
diff --git a/keyboards/kprepublic/bm40hsrgb/info.json b/keyboards/kprepublic/bm40hsrgb/info.json
new file mode 100644
index 0000000000..54b4a5890e
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/info.json
@@ -0,0 +1,60 @@
+{
+ "keyboard_name": "BM40HSRGB",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 12,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_planck_mit": {
+ "layout": [
+ {"label":"K00 (B3,B6)", "x":0, "y":0},
+ {"label":"K01 (B3,C6)", "x":1, "y":0},
+ {"label":"K02 (B3,B4)", "x":2, "y":0},
+ {"label":"K03 (B3,D7)", "x":3, "y":0},
+ {"label":"K04 (B3,D4)", "x":4, "y":0},
+ {"label":"K05 (B3,D6)", "x":5, "y":0},
+ {"label":"K06 (B3,C7)", "x":6, "y":0},
+ {"label":"K07 (B3,F6)", "x":7, "y":0},
+ {"label":"K08 (B3,F5)", "x":8, "y":0},
+ {"label":"K09 (B3,F4)", "x":9, "y":0},
+ {"label":"K0A (B3,F1)", "x":10, "y":0},
+ {"label":"K0B (B3,F0)", "x":11, "y":0},
+ {"label":"K10 (B2,B6)", "x":0, "y":1},
+ {"label":"K11 (B2,C6)", "x":1, "y":1},
+ {"label":"K12 (B2,B4)", "x":2, "y":1},
+ {"label":"K13 (B2,D7)", "x":3, "y":1},
+ {"label":"K14 (B2,D4)", "x":4, "y":1},
+ {"label":"K15 (B2,D6)", "x":5, "y":1},
+ {"label":"K16 (B2,C7)", "x":6, "y":1},
+ {"label":"K17 (B2,F6)", "x":7, "y":1},
+ {"label":"K18 (B2,F5)", "x":8, "y":1},
+ {"label":"K19 (B2,F4)", "x":9, "y":1},
+ {"label":"K1A (B2,F1)", "x":10, "y":1},
+ {"label":"K1B (B2,F0)", "x":11, "y":1},
+ {"label":"K20 (E6,B6)", "x":0, "y":2},
+ {"label":"K21 (E6,C6)", "x":1, "y":2},
+ {"label":"K22 (E6,B4)", "x":2, "y":2},
+ {"label":"K23 (E6,D7)", "x":3, "y":2},
+ {"label":"K24 (E6,D4)", "x":4, "y":2},
+ {"label":"K25 (E6,D6)", "x":5, "y":2},
+ {"label":"K26 (E6,C7)", "x":6, "y":2},
+ {"label":"K27 (E6,F6)", "x":7, "y":2},
+ {"label":"K28 (E6,F5)", "x":8, "y":2},
+ {"label":"K29 (E6,F4)", "x":9, "y":2},
+ {"label":"K2A (E6,F1)", "x":10, "y":2},
+ {"label":"K2B (E6,F0)", "x":11, "y":2},
+ {"label":"K30 (B5,B6)", "x":0, "y":3},
+ {"label":"K31 (B5,C6)", "x":1, "y":3},
+ {"label":"K32 (B5,B4)", "x":2, "y":3},
+ {"label":"K33 (B5,D7)", "x":3, "y":3},
+ {"label":"K34 (B5,D4)", "x":4, "y":3},
+ {"label":"K35 (B5,D6)", "x":5, "y":3, "w":2},
+ {"label":"K37 (B5,F6)", "x":7, "y":3},
+ {"label":"K38 (B5,F5)", "x":8, "y":3},
+ {"label":"K39 (B5,F4)", "x":9, "y":3},
+ {"label":"K3A (B5,F1)", "x":10, "y":3},
+ {"label":"K3B (B5,F0)", "x":11, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c
new file mode 100755
index 0000000000..60faf17e1c
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c
@@ -0,0 +1,108 @@
+/* Copyright 2020 tominabox1
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* 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 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_planck_mit(
+ 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 ,
+ RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, 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_mit(
+ 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_mit(
+ 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
+),
+
+/* Adjust (Lower + Raise)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_planck_mit(
+ _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md
new file mode 100644
index 0000000000..7fc64a7a05
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for bm40hsrgb
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h
new file mode 100644
index 0000000000..9fcddca2cb
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h
@@ -0,0 +1,80 @@
+// qmk flash -kb bm40hsrgb -km signynt
+
+/* Copyright 2021 Vincenzo Mitchell Barroso
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define RGBLIGHT_LAYERS
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+#define RGBLIGHT_ANIMATIONS
+
+//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+#define RGBLIGHT_LIMIT_VAL 10
+
+//bootmagic
+#define BOOTMAGIC_KEY_SALT KC_V
+#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
+
+#ifdef RGB_MATRIX_ENABLE
+
+#define TAPPING_TERM 200
+
+//--------------------------------------------------------------------------------------------------------
+
+//disable broken animations
+#define DISABLE_RGB_MATRIX_ALPHAS_MODS
+#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define DISABLE_RGB_MATRIX_BREATHING
+#define DISABLE_RGB_MATRIX_BAND_SAT
+#define DISABLE_RGB_MATRIX_BAND_VAL
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define DISABLE_RGB_MATRIX_CYCLE_ALL
+#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+//#define DISABLE_RGB_MATRIX_DUAL_BEACON
+#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
+//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
+//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+//#define DISABLE_RGB_MATRIX_RAINDROPS
+#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE
+//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
+//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+//#define DISABLE_RGB_MATRIX_SPLASH
+//#define DISABLE_RGB_MATRIX_MULTISPLASH
+//#define DISABLE_RGB_MATRIX_SOLID_SPLASH
+//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+
+#undef RGB_MATRIX_STARTUP_MODE
+
+#define RGBLIGHT_HUE_STEP 20
+
+#endif
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c
new file mode 100644
index 0000000000..b04f7ffb7c
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c
@@ -0,0 +1,241 @@
+// qmk flash -kb bm40hsrgb -km signynt
+
+/* Copyright 2021 Vincenzo Mitchell Barroso
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+// non-KC_ keycodes
+#define KC_RST RESET
+#define KC_TOG RGB_TOG
+#define KC_MOD RGB_MOD
+#define KC_HUI RGB_HUI
+#define KC_SAI RGB_SAI
+#define KC_VAI RGB_VAI
+
+//define layers
+enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME};
+
+enum custom_keycodes {
+ CMD_TAB = SAFE_RANGE,
+};
+
+//cmd tab
+
+bool is_cmd_tab_active = false;
+uint16_t cmd_tab_timer = 0;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case CMD_TAB:
+ if (record->event.pressed) {
+ if (!is_cmd_tab_active) {
+ is_cmd_tab_active = true;
+ register_code(KC_LCTL);
+ }
+ cmd_tab_timer = timer_read();
+ register_code(KC_TAB);
+ } else {
+ unregister_code(KC_TAB);
+ }
+ break;
+ }
+ return true;
+}
+
+void matrix_scan_user(void) {
+ if (is_cmd_tab_active) {
+ if (timer_elapsed(cmd_tab_timer) > 500) {
+ unregister_code(KC_LCTL);
+ is_cmd_tab_active = false;
+ }
+ }
+}
+
+//layer led colors
+
+void rgb_matrix_indicators_user(void) {
+
+//game indicators
+
+if(IS_LAYER_ON(GAME)) {
+ rgb_matrix_set_color(11, 0, 40, 50);
+}
+
+if(IS_LAYER_ON(SECGAME)) {
+ rgb_matrix_set_color(11, 50, 0, 0);
+}
+
+//layer indicators
+
+if(IS_LAYER_ON(NAVR)) {
+ rgb_matrix_set_color(40, 0, 40, 50);
+
+ rgb_matrix_set_color(19, 0, 40, 50);
+ rgb_matrix_set_color(20, 0, 40, 50);
+ rgb_matrix_set_color(21, 0, 40, 50);
+ rgb_matrix_set_color(22, 0, 40, 50);
+}
+
+if(IS_LAYER_ON(MEDR)) {
+ rgb_matrix_set_color(39, 50, 10, 20);
+
+ rgb_matrix_set_color(19, 50, 10, 20);
+
+ rgb_matrix_set_color(22, 50, 10, 20);
+
+ rgb_matrix_set_color(42, 50, 10, 20);
+}
+
+if(IS_LAYER_ON(FUNL)) {
+ rgb_matrix_set_color(43, 50, 0, 0);
+
+ rgb_matrix_set_color(1, 50, 0, 0);
+ rgb_matrix_set_color(2, 50, 0, 0);
+ rgb_matrix_set_color(3, 50, 0, 0);
+ rgb_matrix_set_color(4, 50, 0, 0);
+
+ rgb_matrix_set_color(13, 50, 0, 0);
+ rgb_matrix_set_color(14, 50, 0, 0);
+ rgb_matrix_set_color(15, 50, 0, 0);
+ rgb_matrix_set_color(16, 50, 0, 0);
+
+ rgb_matrix_set_color(25, 50, 0, 0);
+ rgb_matrix_set_color(26, 50, 0, 0);
+ rgb_matrix_set_color(27, 50, 0, 0);
+ rgb_matrix_set_color(28, 50, 0, 0);
+}
+
+if(IS_LAYER_ON(NSL)) {
+ rgb_matrix_set_color(42, 10, 0, 50);
+
+ rgb_matrix_set_color(2, 10, 0, 50);
+ rgb_matrix_set_color(3, 10, 0, 50);
+ rgb_matrix_set_color(4, 10, 0, 50);
+
+ rgb_matrix_set_color(14, 10, 0, 50);
+ rgb_matrix_set_color(15, 10, 0, 50);
+ rgb_matrix_set_color(16, 10, 0, 50);
+
+ rgb_matrix_set_color(26, 10, 0, 50);
+ rgb_matrix_set_color(27, 10, 0, 50);
+ rgb_matrix_set_color(28, 10, 0, 50);
+
+ rgb_matrix_set_color(38, 10, 0, 50);
+ rgb_matrix_set_color(39, 10, 0, 50);
+ rgb_matrix_set_color(40, 10, 0, 50);
+}
+
+if(IS_LAYER_ON(NSSL)) {
+ rgb_matrix_set_color(41, 0, 50, 1.9);
+
+ rgb_matrix_set_color(1, 0, 50, 1.9);
+ rgb_matrix_set_color(2, 0, 50, 1.9);
+ rgb_matrix_set_color(3, 0, 50, 1.9);
+ rgb_matrix_set_color(4, 0, 50, 1.9);
+ rgb_matrix_set_color(5, 0, 50, 1.9);
+
+ rgb_matrix_set_color(13, 0, 50, 1.9);
+ rgb_matrix_set_color(14, 0, 50, 1.9);
+ rgb_matrix_set_color(15, 0, 50, 1.9);
+ rgb_matrix_set_color(16, 0, 50, 1.9);
+ rgb_matrix_set_color(17, 0, 50, 1.9);
+
+ rgb_matrix_set_color(25, 0, 50, 1.9);
+ rgb_matrix_set_color(26, 0, 50, 1.9);
+ rgb_matrix_set_color(27, 0, 50, 1.9);
+ rgb_matrix_set_color(28, 0, 50, 1.9);
+ rgb_matrix_set_color(29, 0, 50, 1.9);
+
+}
+
+//capslock leds
+
+if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
+ rgb_matrix_set_color_all(50, 15.6, 0);
+ }
+
+}
+
+//tap dance declarations
+enum {
+ TD_MEDIA, TD_SCREEN,
+};
+
+//tap dance definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ),
+ [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ),
+};
+
+#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE)
+
+//--------------------------------------------------------------------------------------------------------
+
+//base
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_planck_mit(
+ KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT,
+ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
+ G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB
+ ),
+
+//layers
+ [NAVR] = LAYOUT_planck_mit(
+ KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT,
+ KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT,
+ KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL,
+ TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT))
+ ),
+ [MEDR] = LAYOUT_planck_mit(
+ KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT,
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT,
+ KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO
+ ),
+ [FUNL] = LAYOUT_planck_mit(
+ KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT,
+ KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT,
+ KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL,
+ KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [NSL] = LAYOUT_planck_mit(
+ KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC,
+ KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT,
+ KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
+ A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [NSSL] = LAYOUT_planck_mit(
+ KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC,
+ KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT,
+ KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL,
+ KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO
+ ),
+ [GAME] = LAYOUT_planck_mit(
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME),
+ KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, 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_LCTL,
+ KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT
+ ),
+ [SECGAME] = LAYOUT_planck_mit(
+ 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0
+ )
+};
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md
new file mode 100644
index 0000000000..938803c268
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md
@@ -0,0 +1,117 @@
+# Signynt's Keymap: 'Sigma-Squared'
+
+Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour*
+
+*manna-harbour* lays out the general principles of the layout as follows:
+
+- Use layers instead of reaching.
+- Use both hands instead of contortions.
+- Use the home positions as much as possible.
+- Make full use of the thumbs.
+- Avoid unnecessary complication.
+
+
+
+Sigma Squared modifies on **Miryoku** in the following ways:
+
+- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies
+- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers
+- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect
+ - moves *left shift* and *left ctrl* down
+ - *esc* moved to top left
+ - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers
+- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features
+ - Mission Control, Screenshot, Cycling Apps & Windows
+- Added LED indicators to display what layer is currently active (only active while RGB is turned on)
+
+
+
+### Flashing
+
+- to directly flash to board:
+
+ `qmk flash -kb bm40hsrgb -km signynt`
+
+- to only compile:
+
+ `qmk compile -kb bm40hsrgb -km signynt`
+
+
+
+# Layout
+
+## BASE
+
+Tap the layer keys to use the black legends, hold them to activate the corresponding layer.
+
+The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys.
+
+If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences
+
+The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.
+
+The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop.
+
+![img](https://i.imgur.com/vhb1L2f.png)
+
+## NAVIGATION
+
+Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words.
+
+*Game Layer* key takes you to the **GAME** layer. *(duh)*
+
+Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS.
+
+![img](https://i.imgur.com/daKxxFz.png)
+
+
+
+## MEDIA
+
+Provides access to all basic media keys, emulating the arrow keys on the home row.
+
+Also gives access to RGB controls.
+
+![img](https://i.imgur.com/1jWOvvH.png)
+
+## NUMBER
+
+Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations.
+
+Top right key changed to *Back Space* so corrections can be made without leaving layer.
+
+![img](https://i.imgur.com/LGJT3so.png)
+
+## SYMBOL
+
+Symbols are positioned over respective numbers from the **NUMBER** layer.
+
+Mouse keys are positioned similarly under the home row corresponding to the arrow keys.
+
+Also includes *Back Space* key for corrections.
+
+![img](https://i.imgur.com/ihOcdPj.png)
+
+## Fn
+
+Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left
+
+![img](https://i.imgur.com/bPpI8KN.png)
+
+## GAME
+
+Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME**
+
+![img](https://i.imgur.com/r9KIWLX.png)
+
+## SECOND GAME
+
+Top right key will turn red to indicate you are in the layer
+
+![img](https://i.imgur.com/BLKHfVB.png)
+
+
+
+# Contact
+
+If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk
new file mode 100644
index 0000000000..73ac4823d4
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk
@@ -0,0 +1,7 @@
+#rules
+
+MOUSEKEY_ENABLE = yes # Mouse keys
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+EXTRAKEY_ENABLE = yes # Audio control and System control
+TAP_DANCE_ENABLE = yes
+#RGB_MATRIX_ENABLE = no
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h
new file mode 100644
index 0000000000..7cfbf0fde4
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h
@@ -0,0 +1,80 @@
+// qmk flash -kb bm40hsrgb -km signynt_2_loud
+
+/* Copyright 2021 Vincenzo Mitchell Barroso
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define RGBLIGHT_LAYERS
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+#define RGBLIGHT_ANIMATIONS
+
+//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+#define RGBLIGHT_LIMIT_VAL 10
+
+//bootmagic
+#define BOOTMAGIC_KEY_SALT KC_V
+#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
+
+#ifdef RGB_MATRIX_ENABLE
+
+#define TAPPING_TERM 200
+
+//--------------------------------------------------------------------------------------------------------
+
+//disable broken animations
+#define DISABLE_RGB_MATRIX_ALPHAS_MODS
+#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define DISABLE_RGB_MATRIX_BREATHING
+#define DISABLE_RGB_MATRIX_BAND_SAT
+#define DISABLE_RGB_MATRIX_BAND_VAL
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define DISABLE_RGB_MATRIX_CYCLE_ALL
+#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+//#define DISABLE_RGB_MATRIX_DUAL_BEACON
+#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
+//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
+//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+//#define DISABLE_RGB_MATRIX_RAINDROPS
+#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE
+//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
+//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+//#define DISABLE_RGB_MATRIX_SPLASH
+//#define DISABLE_RGB_MATRIX_MULTISPLASH
+//#define DISABLE_RGB_MATRIX_SOLID_SPLASH
+//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+
+#undef RGB_MATRIX_STARTUP_MODE
+
+#define RGBLIGHT_HUE_STEP 20
+
+#endif
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
new file mode 100644
index 0000000000..12539fe41c
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
@@ -0,0 +1,214 @@
+// qmk flash -kb bm40hsrgb -km signynt_2_loud
+
+/* Copyright 2021 Vincenzo Mitchell Barroso
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+// non-KC_ keycodes
+#define KC_RST RESET
+#define KC_TOG RGB_TOG
+#define KC_MOD RGB_MOD
+#define KC_HUI RGB_HUI
+#define KC_SAI RGB_SAI
+#define KC_VAI RGB_VAI
+
+//define layers
+enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME};
+
+enum custom_keycodes {
+ CMD_TAB = SAFE_RANGE,
+};
+
+//cmd tab
+
+bool is_cmd_tab_active = false;
+uint16_t cmd_tab_timer = 0;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case CMD_TAB:
+ if (record->event.pressed) {
+ if (!is_cmd_tab_active) {
+ is_cmd_tab_active = true;
+ register_code(KC_LCTL);
+ }
+ cmd_tab_timer = timer_read();
+ register_code(KC_TAB);
+ } else {
+ unregister_code(KC_TAB);
+ }
+ break;
+ }
+ return true;
+}
+
+void matrix_scan_user(void) {
+ if (is_cmd_tab_active) {
+ if (timer_elapsed(cmd_tab_timer) > 500) {
+ unregister_code(KC_LCTL);
+ is_cmd_tab_active = false;
+ }
+ }
+}
+
+//layer led colors
+
+void rgb_matrix_indicators_user(void) {
+
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
+ rgb_matrix_set_color(i, 0, 0, 0);
+ }
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) {
+ rgb_matrix_set_color(i, 0, 0, 0);
+ }
+ }
+
+ //capslock
+ if (host_keyboard_led_state().caps_lock) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 255, 255, 255);
+ }
+ }
+ }
+
+ //nav layer
+ if (IS_LAYER_ON(NAVR)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 0, 204, 255);
+ }
+ }
+ }
+
+ //funl layer
+ if (IS_LAYER_ON(FUNL)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 255, 0, 0);
+ }
+ }
+ }
+
+ //nsl layer
+ if (IS_LAYER_ON(NSL)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 51, 0, 255);
+ }
+ }
+ }
+
+ //nssl layer
+ if (IS_LAYER_ON(NSSL)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 0, 255, 0);
+ }
+ }
+ }
+
+ //game layer
+ if (IS_LAYER_ON(GAME)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 0, 204, 255);
+ }
+ }
+ }
+
+ //secgame layer
+ if (IS_LAYER_ON(SECGAME)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 255, 0, 0);
+ }
+ }
+ }
+
+}
+
+//tap dance declarations
+enum {
+ TD_MEDIA, TD_SCREEN,
+};
+
+//tap dance definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ),
+ [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ),
+};
+
+#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE)
+
+//--------------------------------------------------------------------------------------------------------
+
+//base
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_planck_mit(
+ KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT,
+ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
+ G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB
+ ),
+
+//layers
+ [NAVR] = LAYOUT_planck_mit(
+ KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT,
+ KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT,
+ KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL,
+ TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT))
+ ),
+ [MEDR] = LAYOUT_planck_mit(
+ KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT,
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT,
+ KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO
+ ),
+ [FUNL] = LAYOUT_planck_mit(
+ KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT,
+ KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT,
+ KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL,
+ KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [NSL] = LAYOUT_planck_mit(
+ KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC,
+ KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT,
+ KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
+ A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [NSSL] = LAYOUT_planck_mit(
+ KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC,
+ KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT,
+ KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL,
+ KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO
+ ),
+ [GAME] = LAYOUT_planck_mit(
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME),
+ KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, 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_LCTL,
+ KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT
+ ),
+ [SECGAME] = LAYOUT_planck_mit(
+ 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0
+ )
+};
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md
new file mode 100644
index 0000000000..938803c268
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md
@@ -0,0 +1,117 @@
+# Signynt's Keymap: 'Sigma-Squared'
+
+Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour*
+
+*manna-harbour* lays out the general principles of the layout as follows:
+
+- Use layers instead of reaching.
+- Use both hands instead of contortions.
+- Use the home positions as much as possible.
+- Make full use of the thumbs.
+- Avoid unnecessary complication.
+
+
+
+Sigma Squared modifies on **Miryoku** in the following ways:
+
+- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies
+- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers
+- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect
+ - moves *left shift* and *left ctrl* down
+ - *esc* moved to top left
+ - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers
+- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features
+ - Mission Control, Screenshot, Cycling Apps & Windows
+- Added LED indicators to display what layer is currently active (only active while RGB is turned on)
+
+
+
+### Flashing
+
+- to directly flash to board:
+
+ `qmk flash -kb bm40hsrgb -km signynt`
+
+- to only compile:
+
+ `qmk compile -kb bm40hsrgb -km signynt`
+
+
+
+# Layout
+
+## BASE
+
+Tap the layer keys to use the black legends, hold them to activate the corresponding layer.
+
+The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys.
+
+If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences
+
+The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.
+
+The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop.
+
+![img](https://i.imgur.com/vhb1L2f.png)
+
+## NAVIGATION
+
+Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words.
+
+*Game Layer* key takes you to the **GAME** layer. *(duh)*
+
+Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS.
+
+![img](https://i.imgur.com/daKxxFz.png)
+
+
+
+## MEDIA
+
+Provides access to all basic media keys, emulating the arrow keys on the home row.
+
+Also gives access to RGB controls.
+
+![img](https://i.imgur.com/1jWOvvH.png)
+
+## NUMBER
+
+Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations.
+
+Top right key changed to *Back Space* so corrections can be made without leaving layer.
+
+![img](https://i.imgur.com/LGJT3so.png)
+
+## SYMBOL
+
+Symbols are positioned over respective numbers from the **NUMBER** layer.
+
+Mouse keys are positioned similarly under the home row corresponding to the arrow keys.
+
+Also includes *Back Space* key for corrections.
+
+![img](https://i.imgur.com/ihOcdPj.png)
+
+## Fn
+
+Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left
+
+![img](https://i.imgur.com/bPpI8KN.png)
+
+## GAME
+
+Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME**
+
+![img](https://i.imgur.com/r9KIWLX.png)
+
+## SECOND GAME
+
+Top right key will turn red to indicate you are in the layer
+
+![img](https://i.imgur.com/BLKHfVB.png)
+
+
+
+# Contact
+
+If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk
new file mode 100644
index 0000000000..73ac4823d4
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk
@@ -0,0 +1,7 @@
+#rules
+
+MOUSEKEY_ENABLE = yes # Mouse keys
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+EXTRAKEY_ENABLE = yes # Audio control and System control
+TAP_DANCE_ENABLE = yes
+#RGB_MATRIX_ENABLE = no
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h
new file mode 100644
index 0000000000..4dd37189a9
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h
@@ -0,0 +1,80 @@
+// qmk flash -kb bm40hsrgb -km signynt_2_quiet
+
+/* Copyright 2021 Vincenzo Mitchell Barroso
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define RGBLIGHT_LAYERS
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+#define RGBLIGHT_ANIMATIONS
+
+//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+#define RGBLIGHT_LIMIT_VAL 10
+
+//bootmagic
+#define BOOTMAGIC_KEY_SALT KC_V
+#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
+
+#ifdef RGB_MATRIX_ENABLE
+
+#define TAPPING_TERM 200
+
+//--------------------------------------------------------------------------------------------------------
+
+//disable broken animations
+#define DISABLE_RGB_MATRIX_ALPHAS_MODS
+#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define DISABLE_RGB_MATRIX_BREATHING
+#define DISABLE_RGB_MATRIX_BAND_SAT
+#define DISABLE_RGB_MATRIX_BAND_VAL
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define DISABLE_RGB_MATRIX_CYCLE_ALL
+#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+//#define DISABLE_RGB_MATRIX_DUAL_BEACON
+#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
+//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
+//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+//#define DISABLE_RGB_MATRIX_RAINDROPS
+#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE
+//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
+//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+//#define DISABLE_RGB_MATRIX_SPLASH
+//#define DISABLE_RGB_MATRIX_MULTISPLASH
+//#define DISABLE_RGB_MATRIX_SOLID_SPLASH
+//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+
+#undef RGB_MATRIX_STARTUP_MODE
+
+#define RGBLIGHT_HUE_STEP 20
+
+#endif
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
new file mode 100644
index 0000000000..999e6b18af
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
@@ -0,0 +1,178 @@
+// qmk flash -kb bm40hsrgb -km signynt_2_quiet
+
+/* Copyright 2021 Vincenzo Mitchell Barroso
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+// non-KC_ keycodes
+#define KC_RST RESET
+#define KC_TOG RGB_TOG
+#define KC_MOD RGB_MOD
+#define KC_HUI RGB_HUI
+#define KC_SAI RGB_SAI
+#define KC_VAI RGB_VAI
+
+//define layers
+enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME};
+
+enum custom_keycodes {
+ CMD_TAB = SAFE_RANGE,
+};
+
+//cmd tab
+
+bool is_cmd_tab_active = false;
+uint16_t cmd_tab_timer = 0;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case CMD_TAB:
+ if (record->event.pressed) {
+ if (!is_cmd_tab_active) {
+ is_cmd_tab_active = true;
+ register_code(KC_LCTL);
+ }
+ cmd_tab_timer = timer_read();
+ register_code(KC_TAB);
+ } else {
+ unregister_code(KC_TAB);
+ }
+ break;
+ }
+ return true;
+}
+
+void matrix_scan_user(void) {
+ if (is_cmd_tab_active) {
+ if (timer_elapsed(cmd_tab_timer) > 500) {
+ unregister_code(KC_LCTL);
+ is_cmd_tab_active = false;
+ }
+ }
+}
+
+//layer led colors
+
+void rgb_matrix_indicators_user(void) {
+
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
+ rgb_matrix_set_color(i, 0, 0, 0);
+ }
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) {
+ rgb_matrix_set_color(i, 0, 0, 0);
+ }
+ }
+
+ //capslock
+ if (host_keyboard_led_state().caps_lock) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 255, 255, 255);
+ }
+ }
+ }
+
+ //game layer
+ if (IS_LAYER_ON(GAME)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 0, 204, 255);
+ }
+ }
+ }
+
+ //secgame layer
+ if (IS_LAYER_ON(SECGAME)) {
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
+ if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
+ rgb_matrix_set_color(i, 255, 0, 0);
+ }
+ }
+ }
+
+}
+
+//tap dance declarations
+enum {
+ TD_MEDIA, TD_SCREEN,
+};
+
+//tap dance definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ),
+ [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ),
+};
+
+#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE)
+
+//--------------------------------------------------------------------------------------------------------
+
+//base
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_planck_mit(
+ KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT,
+ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
+ G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB
+ ),
+
+//layers
+ [NAVR] = LAYOUT_planck_mit(
+ KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT,
+ KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT,
+ KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL,
+ TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT))
+ ),
+ [MEDR] = LAYOUT_planck_mit(
+ KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT,
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT,
+ KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO
+ ),
+ [FUNL] = LAYOUT_planck_mit(
+ KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT,
+ KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT,
+ KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL,
+ KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [NSL] = LAYOUT_planck_mit(
+ KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC,
+ KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT,
+ KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
+ A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [NSSL] = LAYOUT_planck_mit(
+ KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC,
+ KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT,
+ KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL,
+ KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO
+ ),
+ [GAME] = LAYOUT_planck_mit(
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME),
+ KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, 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_LCTL,
+ KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT
+ ),
+ [SECGAME] = LAYOUT_planck_mit(
+ 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0
+ )
+};
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md
new file mode 100644
index 0000000000..938803c268
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md
@@ -0,0 +1,117 @@
+# Signynt's Keymap: 'Sigma-Squared'
+
+Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour*
+
+*manna-harbour* lays out the general principles of the layout as follows:
+
+- Use layers instead of reaching.
+- Use both hands instead of contortions.
+- Use the home positions as much as possible.
+- Make full use of the thumbs.
+- Avoid unnecessary complication.
+
+
+
+Sigma Squared modifies on **Miryoku** in the following ways:
+
+- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies
+- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers
+- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect
+ - moves *left shift* and *left ctrl* down
+ - *esc* moved to top left
+ - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers
+- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features
+ - Mission Control, Screenshot, Cycling Apps & Windows
+- Added LED indicators to display what layer is currently active (only active while RGB is turned on)
+
+
+
+### Flashing
+
+- to directly flash to board:
+
+ `qmk flash -kb bm40hsrgb -km signynt`
+
+- to only compile:
+
+ `qmk compile -kb bm40hsrgb -km signynt`
+
+
+
+# Layout
+
+## BASE
+
+Tap the layer keys to use the black legends, hold them to activate the corresponding layer.
+
+The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys.
+
+If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences
+
+The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.
+
+The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop.
+
+![img](https://i.imgur.com/vhb1L2f.png)
+
+## NAVIGATION
+
+Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words.
+
+*Game Layer* key takes you to the **GAME** layer. *(duh)*
+
+Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS.
+
+![img](https://i.imgur.com/daKxxFz.png)
+
+
+
+## MEDIA
+
+Provides access to all basic media keys, emulating the arrow keys on the home row.
+
+Also gives access to RGB controls.
+
+![img](https://i.imgur.com/1jWOvvH.png)
+
+## NUMBER
+
+Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations.
+
+Top right key changed to *Back Space* so corrections can be made without leaving layer.
+
+![img](https://i.imgur.com/LGJT3so.png)
+
+## SYMBOL
+
+Symbols are positioned over respective numbers from the **NUMBER** layer.
+
+Mouse keys are positioned similarly under the home row corresponding to the arrow keys.
+
+Also includes *Back Space* key for corrections.
+
+![img](https://i.imgur.com/ihOcdPj.png)
+
+## Fn
+
+Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left
+
+![img](https://i.imgur.com/bPpI8KN.png)
+
+## GAME
+
+Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME**
+
+![img](https://i.imgur.com/r9KIWLX.png)
+
+## SECOND GAME
+
+Top right key will turn red to indicate you are in the layer
+
+![img](https://i.imgur.com/BLKHfVB.png)
+
+
+
+# Contact
+
+If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk
new file mode 100644
index 0000000000..73ac4823d4
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk
@@ -0,0 +1,7 @@
+#rules
+
+MOUSEKEY_ENABLE = yes # Mouse keys
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+EXTRAKEY_ENABLE = yes # Audio control and System control
+TAP_DANCE_ENABLE = yes
+#RGB_MATRIX_ENABLE = no
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c
new file mode 100644
index 0000000000..60faf17e1c
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c
@@ -0,0 +1,108 @@
+/* Copyright 2020 tominabox1
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* 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 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_planck_mit(
+ 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 ,
+ RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, 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_mit(
+ 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_mit(
+ 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
+),
+
+/* Adjust (Lower + Raise)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_planck_mit(
+ _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md
new file mode 100644
index 0000000000..bff946f327
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The via keymap for bm40hsrgb
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/kprepublic/bm40hsrgb/readme.md b/keyboards/kprepublic/bm40hsrgb/readme.md
new file mode 100644
index 0000000000..a2448f9571
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/readme.md
@@ -0,0 +1,21 @@
+# bm40hsrgb
+
+![BM40 RGB](https://rgoulter.com/images/keyboards/bm40rgb/bm40rgb_large.jpg)
+
+An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic.
+
+This firmware was originally taken from a kbfirmware.json and manually converted. You may find the original `.json` files [here](https://drive.google.com/drive/folders/1tlTHQIFcluK2mjZ4UbbKCsdRLgSRSPw6).
+
+* Keyboard Maintainer: [rgoulter](https://github.com/rgoulter)
+* Hardware Supported: bm40hsrgb PCB
+* Hardware Availability: [KPRepublic](https://www.aliexpress.com/item/4001147779116.html)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make bm40hsrgb:default
+
+Flashing example for this keyboard:
+
+ make bm40hsrgb: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/kprepublic/bm40hsrgb/rules.mk b/keyboards/kprepublic/bm40hsrgb/rules.mk
new file mode 100755
index 0000000000..a2dad1d0d8
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/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 = lite # 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
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+
+LAYOUTS = planck_mit
+LAYOUTS_HAS_RGB = yes