summaryrefslogtreecommitdiff
path: root/keyboards/kprepublic/bm40hsrgb
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/kprepublic/bm40hsrgb')
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/config.h8
-rw-r--r--keyboards/kprepublic/bm40hsrgb/info.json8
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h56
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c91
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md63
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk4
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h85
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c165
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md55
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk4
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c332
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md3
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h7
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c2
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h4
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c2
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h4
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c2
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h4
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c2
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c2
21 files changed, 870 insertions, 33 deletions
diff --git a/keyboards/kprepublic/bm40hsrgb/config.h b/keyboards/kprepublic/bm40hsrgb/config.h
index 8790de8a7b..8e4710abb3 100755
--- a/keyboards/kprepublic/bm40hsrgb/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/config.h
@@ -17,13 +17,6 @@
#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
@@ -31,7 +24,6 @@
/* 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
diff --git a/keyboards/kprepublic/bm40hsrgb/info.json b/keyboards/kprepublic/bm40hsrgb/info.json
index ddd99d3e35..2d1dd70df0 100644
--- a/keyboards/kprepublic/bm40hsrgb/info.json
+++ b/keyboards/kprepublic/bm40hsrgb/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "BM40HSRGB",
+ "keyboard_name": "BM40 Hotswap RGB",
+ "manufacturer": "KPRepublic",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4B50",
+ "pid": "0x3430",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_planck_mit": {
"layout": [
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h
new file mode 100644
index 0000000000..2534ffd554
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h
@@ -0,0 +1,56 @@
+// Copyright 2021 Taeyoon Kim (@partrita)
+// SPDX-License-Identifier: GPL-2.0-or-later
+// /*
+// Set any config.h overrides for your specific keymap here.
+// See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
+// */
+#pragma once
+
+#define TAPPING_TERM 200 // time of holding key, milliseconds
+
+// Prevent normal rollover on alphas from accidentally triggering mods.
+#define IGNORE_MOD_TAP_INTERRUPT
+
+// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
+#define TAPPING_FORCE_HOLD
+
+// Mouse key speed and acceleration.
+#undef MOUSEKEY_DELAY
+#define MOUSEKEY_DELAY 0
+#undef MOUSEKEY_INTERVAL
+#define MOUSEKEY_INTERVAL 16
+#undef MOUSEKEY_WHEEL_DELAY
+#define MOUSEKEY_WHEEL_DELAY 0
+#undef MOUSEKEY_MAX_SPEED
+#define MOUSEKEY_MAX_SPEED 6
+#undef MOUSEKEY_TIME_TO_MAX
+#define MOUSEKEY_TIME_TO_MAX 64
+
+// The firmware is too large!
+#define COMBO_COUNT 1 // number of combo
+#define COMBO_TERM 80 // timeout period for combos to 40ms.
+
+//disable broken animations
+#ifdef RGB_MATRIX_ENABLE
+# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
+# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+# undef ENABLE_RGB_MATRIX_BREATHING
+# undef ENABLE_RGB_MATRIX_BAND_SAT
+# undef ENABLE_RGB_MATRIX_BAND_VAL
+# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+# undef ENABLE_RGB_MATRIX_CYCLE_ALL
+# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
+# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
+# undef RGB_MATRIX_STARTUP_MODE
+// # define RGBLIGHT_HUE_STEP 20
+#endif
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c
new file mode 100644
index 0000000000..4c06536945
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c
@@ -0,0 +1,91 @@
+// Copyright 2021 Taeyoon Kim (@partrita)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+#include "keymap_korean.h"
+
+enum layers {
+ _Base,
+ _Navi,
+ _Numb,
+ _Func,
+};
+
+// Left-hand home row mods - Base Layer
+#define HOME_A LGUI_T(KC_A)
+#define HOME_S LALT_T(KC_S)
+#define HOME_D LCTL_T(KC_D)
+#define HOME_F LSFT_T(KC_F)
+#define HOME_J RSFT_T(KC_J)
+#define HOME_K LCTL_T(KC_K)
+#define HOME_L LALT_T(KC_L)
+#define HOME_QU LGUI_T(KC_QUOT)
+
+// layer keys
+#define Lay_SPC LT(_Func,KC_SPC)
+#define NAVI MO(_Navi)
+#define NUMB MO(_Numb)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_Base] = LAYOUT_planck_mit(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_NO, KC_NO, KC_H, HOME_J, HOME_K, HOME_L, HOME_QU,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_NO, KC_NO, KC_NO, NAVI, Lay_SPC, KC_NO, KC_BSPC, NUMB, KC_NO, KC_NO, KC_NO
+ ),
+ [_Navi] = LAYOUT_planck_mit(
+ KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_ESC, KC_NO, KC_NO, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
+ KC_LSFT, HOME_S, HOME_D, HOME_F, KC_TAB, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU,
+ KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_NO, KC_NO, KC_BTN2, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
+ KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [_Numb] = LAYOUT_planck_mit(
+ KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NO, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU,
+ KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HAEN, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_0, KC_MINS, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+ [_Func] = LAYOUT_planck_mit(
+ KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, KC_NO, KC_NO, KC_CAPS, KC_RSFT, HOME_K, HOME_L, HOME_QU,
+ KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KC_HAEN, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
+ ),
+};
+
+
+// color by layer
+layer_state_t layer_state_set_user(layer_state_t state) {
+ uint8_t layer = get_highest_layer(state);
+ switch (layer) {
+ case _Navi:
+ rgblight_mode_noeeprom(RGB_MATRIX_RAINBOW_BEACON);
+ break;
+ case _Numb:
+ rgblight_mode_noeeprom(RGB_MATRIX_HUE_PENDULUM);
+ break;
+ case _Func:
+ rgblight_mode_noeeprom(RGB_MATRIX_GRADIENT_LEFT_RIGHT);
+ break;
+ default:
+ rgblight_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_WIDE);
+ }
+ return state;
+}
+
+// COMBO key for HOME ROW modifier
+// modify `config.h` file
+// by adding #define COMBO_COUNT 1 (replacing 1 with the number that you’re using).
+// modify `rules.mk` file
+// by adding # COMBO_ENABLE = yes
+
+enum combos {
+ SFT_HAN,
+};
+
+const uint16_t PROGMEM sft_han_combo[] = {LSFT_T(KC_F), LT(_Func,KC_SPC), COMBO_END};
+
+combo_t key_combos[COMBO_COUNT] = {
+ [SFT_HAN] = COMBO(sft_han_combo, KC_HAEN),
+}; \ No newline at end of file
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md
new file mode 100644
index 0000000000..31ac2602b6
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/readme.md
@@ -0,0 +1,63 @@
+# The 35 keymap for bm40hsrgb
+
+This layout is made almost entirely from [miryoku](https://github.com/manna-harbour/miryoku). However, I used fewer layers and reduced 36 keys to 34.
+
+> As little as possible, as simple as possible, as easy as possible to memorize
+
+Replaced the Ctrl, GUI, Alt, and Shift keys with home mod row. A combo function was added by removing some RGB animations of the bm40's keyboard to free up memory. If animation is not removed, it is because there is not enough memory to compile. Added code that uses RGB matrix animation so that you can see at a glance which layer is being used, and you can move faster by increasing the speed of the mouse key.
+
+And because I'm Korean, a combo for Korean and English keyboard conversion has been added, but if you don't need it, you can delete it.
+
+
+- Flash:
+
+ `qmk flash -kb kprepublic/bm40hsrgb -km 34keys`
+
+# Layout
+
+Press and hold to activate the keys in parentheses.
+
+
+https://imgur.com/a/UkKfCYm
+
+
+## _BASE(QWERTY)
+
+![](https://i.imgur.com/PuHFVXT.png)
+
+
+| Q | W | E | R | T | | | Y | U | I | O | P |
+|---|---|---|---|---|---|---|---|---|---|---|---|
+| A(GUI) | S(Alt) | D(Ctrl) | F(Shift) | G | | | H | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
+| Z | X| C| V| B| | | N | M | , | . | /|
+| | | | NaviLayer| Space(_Func) | | | Backspace | NumberLayer | | | |
+
+## _Navi
+
+![](https://i.imgur.com/BwDHx64.png)
+
+| Mousewheel left | Mousewheel down | Mousewheel up | Mousewheel right | ESC | | | DEL | HOME | PageDown | PageUP | END |
+|---|---|---|---|---|---|---|---|---|---|---|---|
+| A(GUI) | S(Alt) | D(Ctrl) | F(Shift) | TAB | | | ENTER | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
+| Mouse left | Mouse down | Mouse up| Mouse right | left click | | | left click | Left | Down | Up | Right |
+| | | | | Space | | | Backspace | NumberLayer | | | |
+
+## _Numb
+
+![](https://i.imgur.com/lPPyUsk.png)
+
+| [ | 7 | 8 | 9 | ] | | | DEL | | | | |
+|---|---|---|---|---|---|---|---|---|---|---|---|
+| ; | 4 | 5 | 6 | = | | | ENTER | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
+| ` | 1 | 2 | 3 | \ | | | | | | | |
+| | | | 0| - | | | Backspace | | | | |
+
+## _Func
+
+![](https://i.imgur.com/rz0jaoe.png)
+
+| F12 | F7 | F8 | F9 | PrintScreen | | | RESET | | | | |
+|---|---|---|---|---|---|---|---|---|---|---|---|
+| F11 | F4 | F5 | F6 | ScrollLock | | | CapsLock | J(Shift) | K(Ctrl) | L(Alt) | '(GUI) |
+| F10 | F1 | F2 | F3 | PauseBreak | | | Insert | | | | |
+| | | | NaviLayer | Space | | | Backspace | NumberLayer | | | |
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk
new file mode 100644
index 0000000000..96655e7b5a
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/rules.mk
@@ -0,0 +1,4 @@
+BOOTMAGIC_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+COMBO_ENABLE = yes
+EXTRAKEY_ENABLE = yes
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h
new file mode 100644
index 0000000000..bfcec37892
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h
@@ -0,0 +1,85 @@
+// Copyright 2022 Fae Fankhauser (@CoffeeIsLife87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define LAYER_STATE_8BIT
+
+// RGB Matrix effects disable
+#ifdef RGB_MATRIX_ENABLE
+# define UNDERGLOW_DISABLE
+
+# define RGB_TRIGGER_ON_KEYDOWN
+
+# define RGB_MATRIX_LED_FLUSH_LIMIT 10
+
+# undef ENABLE_RGB_MATRIX_SOLID_COLOR
+# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
+# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+# undef ENABLE_RGB_MATRIX_BREATHING
+# undef ENABLE_RGB_MATRIX_BAND_SAT
+# undef ENABLE_RGB_MATRIX_BAND_VAL
+# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+
+# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+# undef ENABLE_RGB_MATRIX_DUAL_BEACON
+# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
+# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+# undef ENABLE_RGB_MATRIX_RAINDROPS
+# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+# undef ENABLE_RGB_MATRIX_HUE_BREATHING
+# undef ENABLE_RGB_MATRIX_HUE_PENDULUM
+# undef ENABLE_RGB_MATRIX_HUE_WAVE
+# undef ENABLE_RGB_MATRIX_PIXEL_RAIN
+# undef ENABLE_RGB_MATRIX_PIXEL_FLOW
+# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+
+# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
+# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
+
+# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+# undef ENABLE_RGB_MATRIX_SPLASH
+# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
+# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#endif
+
+// If RGBLight is enabled
+#ifdef RGBLIGHT_ENABLE
+# define RGBLED_NUM DRIVER_LED_TOTAL
+
+# define RGBLIGHT_EFFECT_SNAKE
+# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#endif
+
+// Feature disable
+#ifndef NO_PRINT
+# define NO_PRINT
+#endif
+
+#ifndef NO_DEBUG
+# define NO_DEBUG
+#endif
+
+#ifndef NO_ACTION_ONESHOT
+# define NO_ACTION_ONESHOT
+#endif
+
+// Configure features
+#ifdef DYNAMIC_MACRO_ENABLE
+# define DYNAMIC_MACRO_USER_CALL
+# define DYNAMIC_MACRO_NO_NESTING
+#endif
+
+#ifdef MOUSEKEY_ENABLE
+# define MOUSEKEY_INTERVAL 16 // 60 FPS
+# define MK_3_SPEED
+#endif \ No newline at end of file
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c
new file mode 100644
index 0000000000..9130bd678e
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c
@@ -0,0 +1,165 @@
+// Copyright 2022 Fae Fankhauser (@CoffeeIsLife87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum custom_keycodes {
+ NULLKEY = SAFE_RANGE, // An empty key to start (and maybe end) the enum
+ #ifdef DYNAMIC_MACRO_ENABLE
+ MCR_PLY, // Macro play
+ MCR_REC, // Macro record
+ MCR_SWT, // Swap active macro
+ #endif
+};
+
+enum layout_names {
+ _MAIN = 0, // Keys Layout: The main keyboard layout that has all the characters
+ _SUB, // Extension to Main
+ _CTR, // Macros, RGB, Audio controls, layer access. More or less the control center of my keyboard
+ _END,
+};
+
+#ifdef DYNAMIC_MACRO_ENABLE
+ // Macro 1 is = 1, Macro 2 = -1, No macro = 0
+ static bool MACRO1 = true;
+ static bool RECORDING = false;
+
+ static uint16_t REC = DM_REC1;
+ static uint16_t PLY = DM_PLY1;
+
+ void dynamic_macro_record_start_user(void) {
+ REC = DM_RSTP;
+ RECORDING = true;
+ }
+ void dynamic_macro_record_end_user(int8_t direction) {
+ RECORDING = false;
+ }
+#else
+ #define MCR_PLY KC_NO
+ #define MCR_REC KC_NO
+ #define MCR_SWT KC_NO
+#endif
+
+const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = {
+ [_MAIN] = 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 , KC_BSPC,
+ KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_ENT ,
+ KC_LCTL, KC_LGUI, XXXXXXX,KC_LALT ,MO(_SUB), KC_SPC ,MO(_CTR), KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
+ ),
+ [_SUB] = 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_DEL,
+ XXXXXXX, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_PGUP,
+ _______, KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_PGDN,
+ _______, _______, XXXXXXX, _______, _______, _______ , _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+ [_CTR] = LAYOUT_planck_mit(
+ XXXXXXX, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, MCR_REC,
+ XXXXXXX, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, MCR_PLY,
+ XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX, XXXXXXX, MCR_SWT,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ )
+};
+
+#define LAYER (get_highest_layer(layer_state))
+#define LAYER_SIZE (MATRIX_ROWS * MATRIX_COLS)
+#define CHECK_LED() \
+ if ((i >= DRIVER_LED_TOTAL) \
+ || ((g_led_config.flags[pos] == LED_FLAG_NONE) || (g_led_config.flags[pos] == LED_FLAG_UNDERGLOW))) \
+ continue
+
+#ifdef RGB_MATRIX_ENABLE
+
+ #ifdef UNDERGLOW_DISABLE
+ void keyboard_pre_init_user(void) {
+
+ for (int key_id = 0; key_id < DRIVER_LED_TOTAL; key_id++ ) {
+ if (g_led_config.flags[key_id] == LED_FLAG_UNDERGLOW) {
+ g_led_config.flags[key_id] = LED_FLAG_NONE;
+ }
+ }
+ }
+ #endif
+
+ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
+ if (LAYER != _MAIN) {
+
+ int DimmedMax = UINT8_MAX - (UINT8_MAX - rgb_matrix_config.hsv.v);
+
+ for (uint8_t i = led_min; i <= led_max; i++) {
+
+ uint8_t pos = ((uint8_t*)g_led_config.matrix_co)[i];
+
+ CHECK_LED(); // Check LED before moving on
+ uint16_t KC = pgm_read_word(&((uint16_t*)keymaps)[(LAYER_SIZE * LAYER) + i]);
+
+ if (KC == KC_NO) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, 0, 0 );
+ }
+
+ #ifdef DYNAMIC_MACRO_ENABLE
+ else if (KC == MCR_SWT) {
+ if (!MACRO1) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, DimmedMax, DimmedMax);
+ }
+ } else if (KC == MCR_REC) {
+ if (RECORDING) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(pos, DimmedMax, 0, 0);
+ }
+ }
+ #endif
+
+ }
+ }
+ }
+#endif
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ #ifdef DYNAMIC_MACRO_ENABLE
+ if (keycode == MCR_REC) keycode = REC;
+ if (keycode == MCR_PLY) keycode = PLY;
+ if (!process_dynamic_macro(keycode, record)) {
+ REC = (MACRO1 ? DM_REC1 : DM_REC2);
+ return false;
+ }
+ #endif
+
+ switch (keycode) {
+ #ifdef DYNAMIC_MACRO_ENABLE
+ case MCR_SWT:
+ if (!RECORDING && record->event.pressed) {
+ // if the button is pressed and we're not recording
+ MACRO1 = !MACRO1;
+ if (MACRO1) {
+ REC = DM_REC1;
+ PLY = DM_PLY1;
+ } else {
+ REC = DM_REC2;
+ PLY = DM_PLY2;
+ }
+ }
+ return false;
+ #endif
+
+ #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) // this only needs to be defined if both are enabled
+ case RGB_TOG: // We can intercept this keycode ig? Cool :)
+ if (record->event.pressed) {
+ if (rgb_matrix_is_enabled()) {
+ rgb_matrix_disable/*_noeeprom*/();
+ rgblight_enable/*_noeeprom*/();
+ } else if (rgblight_is_enabled()) {
+ rgb_matrix_disable/*_noeeprom*/();
+ rgblight_disable/*_noeeprom*/();
+ } else {
+ rgb_matrix_enable/*_noeeprom*/();
+ rgblight_disable/*_noeeprom*/();
+ }
+ }
+ return false;
+ #endif
+
+ default:
+ return true; //Process all other keycodes normally
+ }
+} \ No newline at end of file
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md
new file mode 100644
index 0000000000..2fb004cece
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md
@@ -0,0 +1,55 @@
+# Kprepublic BM40HSRGB Coffee
+
+A layout that aims to be familiar to people that have used larger boards
+
+## The layout
+
+The primary layer ( `_MAIN` ) is as close to standard qwerty as I could get.
+```
+esc | q | w | e | r | t | y | u | i | o | p | bksp
+tab | a | s | d | f | g | h | j | k | l | ; | '
+shft | z | x | c | v | b | n | m | , | . | / | rtrn
+ctrl | win | | alt | SUB | spc | CTR | lft | dwn | up | rght
+```
+
+The secondary layer ( `_SUB` ) is for syntax, F keys, and number keys
+```
+grv | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | del
+ | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | pgup
+ _ | F7 | F8 | F9 | F10 | F11 | F12 | | | | \ | pgdn
+ _ | _ | | _ | _ | _ | _ | | | |
+```
+
+The control layer ( `_CTR` ) is for lighting, media, and macros
+```
+ | SPD- | BRI+ | SPD+ | HUE+ | SAT+ | | | VOL+ | | | MCR_REC
+ | EFCT- | BRI- | EFCT+ | HUE- | SAT- | | PREV | PLAY | NEXT | | MCR_PLY
+ | | TOG | | | | | | VOL- | | | MCR_SWT
+ | | | | | _ | | | | |
+```
+
+| Key name | Explanation |
+| -------- | -------------------------------------- |
+| \_ | Passthrough the key on the layer below |
+| SUB | Goes to _SUB layer while held down |
+| CTR | Goes to _CTR layer while held down |
+| SPD +/- | Changes speed for the RGB effect |
+| BRI +/- | Changes the brightness of the lighting |
+| EFCT +/- | Moves to the next/previous effect |
+| TOG | Toggles the lighting on or off |
+| HUE +/- | Changes the hue for RGB effects |
+| SAT +/- | Changes the saturation for RGB effects |
+| MSE | Toggles the Mouse layer |
+| VOL +/- | Raises or lowers media volume |
+| PREV | Goes to previous media |
+| PLAY | Play/Pause media |
+| NEXT | Goes to next media |
+| MCR_REC | Record macro ( Press again to stop ) |
+| MCR_PLY | Play recorded macro |
+| MCR_SWT | Switch active macro |
+
+## Compiling
+
+Compiling: `make kprepublic/bm40hsrgb:coffee`
+
+Flashing: `make kprepublic/bm40hsrgb:coffee:flash`
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk
new file mode 100644
index 0000000000..5d3039b8e2
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk
@@ -0,0 +1,4 @@
+MOUSEKEY_ENABLE = no
+NKRO_ENABLE = yes
+DYNAMIC_MACRO_ENABLE = yes
+LTO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c
new file mode 100644
index 0000000000..5029d557dd
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c
@@ -0,0 +1,332 @@
+/* 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 {
+ _ALPHA,
+ _LEFTFN,
+ _RIGHTFN,
+ _NUMPAD,
+ _LEAGUE,
+ _PUBG,
+ _OVERWATCH,
+ _STARCRAFT,
+ _TETRIS,
+ _CLEAN,
+ _RGB
+};
+
+#define ALPHA TO(_ALPHA)
+#define LEFTFN MO(_LEFTFN)
+#define RIGHTFN MO(_RIGHTFN)
+#define NUMPAD MO(_NUMPAD)
+#define LEAGUE TG(_LEAGUE)
+#define PUBG TG(_PUBG)
+#define OVERWATCH TG(_OVERWATCH)
+#define STARCRAFT TG(_STARCRAFT)
+#define TETRIS TG(_TETRIS)
+#define CLEAN TG(_CLEAN)
+#define RGB MO(_RGB)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* ALPHA
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Return|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |ESC/NP| KOR | Win | Alt |LEFTFN| Space |RFN/- | = |Delete| \ | Enter|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ALPHA] = 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_LCTL, 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 ,
+ LT(NUMPAD, KC_ESC), KC_LNG1, KC_LGUI, KC_LALT, LEFTFN, KC_SPC, LT(RIGHTFN, KC_MINS), KC_EQL, KC_DEL, KC_BSLS, KC_PENT
+),
+
+/* LEFTFN
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Left | Down | Up |Right |CTRL+/|HANJA | [ | ] | ) | : | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| PGUP | PGDN | Home | End | CAPS |PRNTSR| ( | , | . | / | Enter|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | RGB | [ | ] | Alt | Trns | Space | _ | + | INS | | | Ent. |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LEFTFN] = 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_LCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LCTL(KC_SLSH), KC_LNG2, KC_LBRC, KC_RBRC, KC_RPRN, KC_COLN, KC_DQUO,
+ KC_LSFT, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_CAPS, KC_PSCR, KC_LPRN, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ RGB, KC_LBRC, KC_RBRC, KC_LALT, KC_TRNS, KC_SPC, KC_UNDS, KC_PLUS, KC_INS, KC_PIPE, KC_PENT
+),
+
+
+/* RIGHTFN
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | Pause|SCRLCK| | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | | | | | | | F1 | F2 | F3 | F4 | F5 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| | | | | | | F6 | F7 | F8 | F9 | F10 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | Alt | | Space | Trns | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RIGHTFN] = LAYOUT_planck_mit(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PAUS, KC_SCRL, KC_NO, KC_F11, KC_F12,
+ KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ KC_NO, KC_NO, KC_NO, KC_LALT, KC_NO, KC_SPC, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO
+),
+
+/* NUMPAD
+ * ,-----------------------------------------------------------------------------------.
+ * | * | 7 | 8 | 9 | NumLk| | | | | | | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Alt | 4 | 5 | 6 | Enter| | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | - | 1 | 2 | 3 | Bksp | | | | | Ctrl | Shift|Return|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Trns | , | + | . | 0 | Space |LEAGUE| PUBG | OVWCh| SC |TETRIS|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = LAYOUT_planck_mit(
+ KC_PAST, KC_P7, KC_P8, KC_P9, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC,
+ KC_LALT, KC_P4, KC_P5, KC_P6, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_PMNS, KC_P1, KC_P2, KC_P3, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_ENT,
+ KC_TRNS, KC_COMM, KC_PPLS, KC_PDOT, KC_0, KC_SPC, LEAGUE, PUBG, OVERWATCH, STARCRAFT, TETRIS
+),
+
+/* LEAGUE
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | 5 | Y | | | O | P | ESC |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | A | S | D | F | | | | | L | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | 6 | 4 | 1 | B | | | | | | Enter|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | 3 | X | C | Alt | 2 | Space | | | | | ALPHA|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LEAGUE] = LAYOUT_planck_mit(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_5, KC_Y, KC_NO, KC_NO, KC_O, KC_P, KC_ESC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_NO, KC_NO, KC_NO, KC_NO, KC_L, KC_NO, KC_NO,
+ KC_LSFT, KC_Z, KC_6, KC_4, KC_1, KC_B, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT,
+ KC_3, KC_X, KC_C, KC_LALT, KC_2, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, ALPHA
+),
+
+/* PUBG
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | ESC |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | 1 | A | S | D | F | G | H | J | K | L | | F7 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | 3 | X | C | V | B | M | . | | | F9 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | 5 | 4 | Alt | 2 | Space | 6 | 8 | 7 | 9 | ALPHA|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_PUBG] = 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_ESC,
+ KC_1, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_F7,
+ KC_LSFT, KC_Z, KC_3, KC_X, KC_C, KC_V, KC_B, KC_M, KC_DOT, KC_NO, KC_NO, KC_F9,
+ KC_LCTL, KC_5, KC_4, KC_LALT, KC_2, KC_SPC, KC_6, KC_8, KC_7, KC_9, ALPHA
+),
+
+/* OVERWATCH
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | ESC |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | 1 | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | | | Alt | 2 | Space | Bksp | | | | ALPHA|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_OVERWATCH] = 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_ESC,
+ KC_1, 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_NO, KC_NO, KC_LALT, KC_2, KC_SPC, KC_BSPC, KC_NO, KC_NO, KC_NO, ALPHA
+),
+
+/* STARCRAFT
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | | | Alt | F1 | Space | F10 | Pause|Delete| | ALPHA|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_STARCRAFT] = 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_LCTL, 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_ESC, KC_NO, KC_NO, KC_LALT, KC_F1, KC_SPC, KC_F10, KC_PAUS, KC_DEL, KC_NO, ALPHA
+),
+
+/* TETRIS
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | Up | E | R | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | A | Left | Down | Right| F | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | | | Alt | S | Space | | | | | ALPHA|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_TETRIS] = LAYOUT_planck_mit(
+
+ KC_TAB, KC_Q, KC_UP, KC_E, KC_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_A, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_LCTL, KC_NO, KC_NO, KC_LALT, KC_S, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, ALPHA
+
+),
+
+/* TETRIS
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | ALPHA|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_CLEAN] = LAYOUT_planck_mit(
+ 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, 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, 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, KC_NO, ALPHA
+),
+
+/* RGB (LEFTFN + RGB)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | CLEAN|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |RGBTGL| MOD+ | BRT+ | SAT+ | | | | FX+ | HUE+ | | MOD R| MODES|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | MOD- | BRT- | SAT- | Trns | | FX- | HUE- | | MOD B| MOD P|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RGB] = LAYOUT_planck_mit(
+ KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CLEAN,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ RGB_TOG, RGB_MOD, RGB_VAI, RGB_SAI, KC_NO, KC_NO, KC_NO, RGB_SPI, RGB_HUI, KC_NO, RGB_M_R, RGB_M_SW,
+ KC_NO, RGB_RMOD, RGB_VAD, RGB_SAD, KC_TRNS, KC_NO, RGB_SPD, RGB_HUD, KC_NO, RGB_M_B, RGB_M_P
+)
+
+};
+
+/*
+
+// 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, 42, 43, 44, 45, 46}
+
+*/
+void rgb_matrix_indicators_user(void) {
+ switch (get_highest_layer(layer_state)) {
+ case _ALPHA:
+ break;
+ case _LEFTFN:
+ break;
+ case _RIGHTFN:
+ break;
+ case _NUMPAD:
+ break;
+ case _LEAGUE:
+ rgb_matrix_set_color(1, 15, 15, 15);
+ rgb_matrix_set_color(2, 15, 15, 15);
+ rgb_matrix_set_color(3, 15, 15, 15);
+ rgb_matrix_set_color(4, 15, 15, 15);
+ rgb_matrix_set_color(15, 50, 40, 0);
+ rgb_matrix_set_color(16, 50, 5, 0);
+ rgb_matrix_set_color(29, 0, 15, 50);
+ rgb_matrix_set_color(10, 20, 2, 15);
+ break;
+
+ case _PUBG:
+ rgb_matrix_set_color(12, 15, 15, 15);
+ rgb_matrix_set_color(40, 15, 15, 15);
+ rgb_matrix_set_color(42, 3, 3, 50);
+ rgb_matrix_set_color(43, 5, 50, 8);
+ rgb_matrix_set_color(44, 50, 35, 0);
+ rgb_matrix_set_color(45, 30, 30, 15);
+ break;
+
+ case _OVERWATCH:
+ rgb_matrix_set_color(11, 80, 20, 0);
+ rgb_matrix_set_color(46, 80, 20, 0);
+ break;
+
+ case _STARCRAFT:
+ rgb_matrix_set_color(11, 5, 80, 15);
+ rgb_matrix_set_color(46, 5, 80, 15);
+ break;
+
+ case _TETRIS:
+ rgb_matrix_set_color(2, 60, 10, 20);
+ rgb_matrix_set_color(13, 60, 10, 20);
+ rgb_matrix_set_color(14, 60, 10, 20);
+ rgb_matrix_set_color(15, 60, 10, 20);
+ break;
+
+ case _CLEAN:
+ rgb_matrix_set_color_all(255, 255, 255);
+ break;
+
+ case _RGB:
+ break;
+ }
+
+ led_t led_state = host_keyboard_led_state();
+
+ //Capslock led
+ if (led_state.caps_lock) {
+ rgb_matrix_set_color(12, 145, 145, 145);
+ }
+
+ //Numlock led
+ if (!led_state.num_lock) {
+ rgb_matrix_set_color(0, 145, 145, 145);
+ }
+
+ //Scroll lock led
+ if (led_state.scroll_lock) {
+ rgb_matrix_set_color(24, 145, 145, 145);
+ }
+
+}
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md
new file mode 100644
index 0000000000..4a706c7315
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md
@@ -0,0 +1,3 @@
+# Dan's kprepublic bm40 layout
+
+Dan's personal keymap with LED indicator support.
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h
index b38e4b8fc6..e71078415a 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h
@@ -30,9 +30,6 @@
#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
#define AUTO_SHIFT_NO_SETUP
-// Recommended for heavy chording.
-#define QMK_KEYS_PER_SCAN 4
-
// Mouse key speed and acceleration.
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 0
@@ -60,10 +57,6 @@
#define RGBLIGHT_LIMIT_VAL 10
-//bootmagic
-#define BOOTMAGIC_KEY_SALT KC_V
-#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
-
#ifdef RGB_MATRIX_ENABLE
# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c
index 1ebea18175..12db3f2eec 100755
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c
@@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[FUN] = LAYOUT_planck_mit(
- KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
+ KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT,
KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_NO, KC_NO, KC_NO, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ALGR, KC_NO,
KC_NO, KC_NO, KC_APP, KC_SPC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h
index 2b0d0961c4..a88ae7f2e8 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h
@@ -25,10 +25,6 @@
//#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
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c
index b04f7ffb7c..1e97aba495 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c
@@ -19,7 +19,7 @@
#include QMK_KEYBOARD_H
// non-KC_ keycodes
-#define KC_RST RESET
+#define KC_RST QK_BOOT
#define KC_TOG RGB_TOG
#define KC_MOD RGB_MOD
#define KC_HUI RGB_HUI
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h
index d39f6b95c8..cdfa67acb0 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h
@@ -25,10 +25,6 @@
//#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
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
index 12539fe41c..e725e23214 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
@@ -19,7 +19,7 @@
#include QMK_KEYBOARD_H
// non-KC_ keycodes
-#define KC_RST RESET
+#define KC_RST QK_BOOT
#define KC_TOG RGB_TOG
#define KC_MOD RGB_MOD
#define KC_HUI RGB_HUI
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h
index a4634c581e..dbadc3da99 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h
@@ -25,10 +25,6 @@
//#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
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
index 999e6b18af..02ea122a03 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
@@ -19,7 +19,7 @@
#include QMK_KEYBOARD_H
// non-KC_ keycodes
-#define KC_RST RESET
+#define KC_RST QK_BOOT
#define KC_TOG RGB_TOG
#define KC_MOD RGB_MOD
#define KC_HUI RGB_HUI
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c
index e72d83f9d0..ecce30e237 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c
@@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// adjust layer ok
[_ADJUST] = LAYOUT_planck_mit(
- RESET, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______,
+ QK_BOOT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______,
KC_CAPS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, QWERTY, DVORAK, COLEMAK, WORKMAN, MIDI,
_______, MI_ON, MI_OFF, MI_TOG, MU_ON, MU_OFF, MU_TOG, MU_MOD, AU_ON, AU_OFF, _______, _______,
RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______