diff --git a/keyboards/black_hellebore/config.h b/keyboards/black_hellebore/config.h
new file mode 100644
index 000000000000..398055460fd6
--- /dev/null
+++ b/keyboards/black_hellebore/config.h
@@ -0,0 +1,84 @@
+/* Copyright 2023 MATTMCCA (@MATTMCCA)
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+ #define WS2812_PWM_DRIVER PWMD1
+ #define WS2812_PWM_CHANNEL 1
+ #define WS2812_PWM_PAL_MODE 1 //TIM1_CH1N (AF1)
+ #define WS2812_PWM_COMPLEMENTARY_OUTPUT
+ #define WS2812_DMA_STREAM STM32_DMA1_STREAM6
+ #define WS2812_DMA_CHANNEL 7 //7 works, CxS[3:0] 0111 = TIM1_UP on Channel 6? (RM0394.pdf pg.298)
+
+ #define RGB_DI_PIN A7 // The pin connected to the data pin of the LEDs
+ #define RGB_MATRIX_LED_COUNT 61 // The number of LEDs connected
+
+ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+ #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
+ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects
+
+ #define ENABLE_RGB_MATRIX_SOLID_COLOR // Static single color
+ #define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue
+ #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes
+ #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes
+ #define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation
+ #define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right
+ #define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right
+ #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
+ #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
+ #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation
+ #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness
+ #define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient
+ #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right
+ #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
+ #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in
+ #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
+ #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient Chevron shaped scrolling left to right
+ #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
+ #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
+ #define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
+ #define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
+ #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
+ #define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
+ #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
+ #define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back
+ #define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left
+ #define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right
+
+ /* RGB_MATRIX_FRAMEBUFFER_EFFECTS) */
+ #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+ #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+
+ /* RGB_MATRIX_KEYPRESSES) | defined(RGB_MATRIX_KEYRELEASES) */
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
+ #define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
+ #define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
+ #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
+
+#endif
+
diff --git a/keyboards/black_hellebore/halconf.h b/keyboards/black_hellebore/halconf.h
new file mode 100644
index 000000000000..d1b259e342a6
--- /dev/null
+++ b/keyboards/black_hellebore/halconf.h
@@ -0,0 +1,21 @@
+/* Copyright 2023 MATTMCCA (@MATTMCCA)
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#define HAL_USE_PWM TRUE
+
+#include_next
diff --git a/keyboards/black_hellebore/info.json b/keyboards/black_hellebore/info.json
new file mode 100644
index 000000000000..1e02544157e4
--- /dev/null
+++ b/keyboards/black_hellebore/info.json
@@ -0,0 +1,160 @@
+{
+ "manufacturer": "MATTMCCA",
+ "keyboard_name": "black_hellebore",
+ "maintainer": "MATTMCCA",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["B15", "B14", "B13", "A9", "A2", "B1", "B9", "B7", "B5", "B4", "B0", "A8", "B6", "B3"],
+ "rows": ["A15", "B8", "A4", "A3", "B2"]
+ },
+ "processor": "STM32L412",
+ "url": "https://github.com/MATTMCCA/The-Black-Hellebore",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x4467",
+ "vid": "0x3141"
+ },
+ "rgb_matrix": {
+ "layout": [
+ { "flags": 4, "matrix": [0, 0] , "x": 7 , "y": 5 } ,
+ { "flags": 4, "matrix": [0, 1] , "x": 22 , "y": 5 } ,
+ { "flags": 4, "matrix": [0, 2] , "x": 37 , "y": 5 } ,
+ { "flags": 4, "matrix": [0, 3] , "x": 52 , "y": 5 } ,
+ { "flags": 4, "matrix": [0, 4] , "x": 67 , "y": 5 } ,
+ { "flags": 4, "matrix": [0, 5] , "x": 82 , "y": 5 } ,
+ { "flags": 4, "matrix": [0, 6] , "x": 97 , "y": 5 } ,
+ { "flags": 4, "matrix": [0, 7] , "x": 112, "y": 5 } ,
+ { "flags": 4, "matrix": [0, 8] , "x": 127, "y": 5 } ,
+ { "flags": 4, "matrix": [0, 9] , "x": 142, "y": 5 } ,
+ { "flags": 4, "matrix": [0, 10], "x": 157, "y": 5 } ,
+ { "flags": 4, "matrix": [0, 11], "x": 172, "y": 5 } ,
+ { "flags": 4, "matrix": [0, 12], "x": 187, "y": 5 } ,
+ { "flags": 4, "matrix": [0, 13], "x": 209, "y": 5 } ,
+ { "flags": 4, "matrix": [1, 13], "x": 213, "y": 17 },
+ { "flags": 4, "matrix": [1, 12], "x": 194, "y": 17 },
+ { "flags": 4, "matrix": [1, 11], "x": 179, "y": 17 },
+ { "flags": 4, "matrix": [1, 10], "x": 164, "y": 17 },
+ { "flags": 4, "matrix": [1, 9] , "x": 149, "y": 17 },
+ { "flags": 4, "matrix": [1, 8] , "x": 134, "y": 17 },
+ { "flags": 4, "matrix": [1, 7] , "x": 119, "y": 17 },
+ { "flags": 4, "matrix": [1, 6] , "x": 104, "y": 17 },
+ { "flags": 4, "matrix": [1, 5] , "x": 90 , "y": 17 },
+ { "flags": 4, "matrix": [1, 4] , "x": 75 , "y": 17 },
+ { "flags": 4, "matrix": [1, 3] , "x": 60 , "y": 17 },
+ { "flags": 4, "matrix": [1, 2] , "x": 45 , "y": 17 },
+ { "flags": 4, "matrix": [1, 1] , "x": 30 , "y": 17 },
+ { "flags": 4, "matrix": [1, 0] , "x": 11 , "y": 17 },
+ { "flags": 4, "matrix": [2, 0] , "x": 13 , "y": 29 },
+ { "flags": 4, "matrix": [2, 1] , "x": 34 , "y": 29 },
+ { "flags": 4, "matrix": [2, 2] , "x": 49 , "y": 29 },
+ { "flags": 4, "matrix": [2, 3] , "x": 63 , "y": 29 },
+ { "flags": 4, "matrix": [2, 4] , "x": 78 , "y": 29 },
+ { "flags": 4, "matrix": [2, 5] , "x": 93 , "y": 29 },
+ { "flags": 4, "matrix": [2, 6] , "x": 108, "y": 29 },
+ { "flags": 4, "matrix": [2, 7] , "x": 123, "y": 29 },
+ { "flags": 4, "matrix": [2, 8] , "x": 138, "y": 29 },
+ { "flags": 4, "matrix": [2, 9] , "x": 153, "y": 29 },
+ { "flags": 4, "matrix": [2, 10], "x": 168, "y": 29 },
+ { "flags": 4, "matrix": [2, 11], "x": 183, "y": 29 },
+ { "flags": 4, "matrix": [2, 13], "x": 207, "y": 29 },
+ { "flags": 4, "matrix": [3, 13], "x": 203, "y": 41 },
+ { "flags": 4, "matrix": [3, 10], "x": 175, "y": 41 },
+ { "flags": 4, "matrix": [3, 9] , "x": 161, "y": 41 },
+ { "flags": 4, "matrix": [3, 8] , "x": 146, "y": 41 },
+ { "flags": 4, "matrix": [3, 7] , "x": 131, "y": 41 },
+ { "flags": 4, "matrix": [3, 6] , "x": 116, "y": 41 },
+ { "flags": 4, "matrix": [3, 5] , "x": 101, "y": 41 },
+ { "flags": 4, "matrix": [3, 4] , "x": 86 , "y": 41 },
+ { "flags": 4, "matrix": [3, 3] , "x": 71 , "y": 41 },
+ { "flags": 4, "matrix": [3, 2] , "x": 56 , "y": 41 },
+ { "flags": 4, "matrix": [3, 1] , "x": 41 , "y": 41 },
+ { "flags": 4, "matrix": [3, 0] , "x": 17 , "y": 41 },
+ { "flags": 4, "matrix": [4, 0] , "x": 9 , "y": 54 },
+ { "flags": 4, "matrix": [4, 1] , "x": 28 , "y": 54 },
+ { "flags": 4, "matrix": [4, 2] , "x": 47 , "y": 54 },
+ { "flags": 4, "matrix": [4, 5] , "x": 103, "y": 54 },
+ { "flags": 4, "matrix": [4, 9] , "x": 159, "y": 54 },
+ { "flags": 4, "matrix": [4, 10], "x": 177, "y": 54 },
+ { "flags": 4, "matrix": [4, 11], "x": 196, "y": 54 },
+ { "flags": 4, "matrix": [4, 13], "x": 215, "y": 54 }
+ ]
+ },
+ "layouts": {
+ "LAYOUT_60_ansi": {
+ "layout": [
+ { "matrix": [0, 0] , "x": 0 , "y": 0 },
+ { "matrix": [0, 1] , "x": 1 , "y": 0 },
+ { "matrix": [0, 2] , "x": 2 , "y": 0 },
+ { "matrix": [0, 3] , "x": 3 , "y": 0 },
+ { "matrix": [0, 4] , "x": 4 , "y": 0 },
+ { "matrix": [0, 5] , "x": 5 , "y": 0 },
+ { "matrix": [0, 6] , "x": 6 , "y": 0 },
+ { "matrix": [0, 7] , "x": 7 , "y": 0 },
+ { "matrix": [0, 8] , "x": 8 , "y": 0 },
+ { "matrix": [0, 9] , "x": 9 , "y": 0 },
+ { "matrix": [0, 10] , "x": 10 , "y": 0 },
+ { "matrix": [0, 11] , "x": 11 , "y": 0 },
+ { "matrix": [0, 12] , "x": 12 , "y": 0 },
+ { "matrix": [0, 13], "w": 2 , "x": 13 , "y": 0 },
+ { "matrix": [1, 0] , "w": 1.5 , "x": 0 , "y": 1 },
+ { "matrix": [1, 1] , "x": 1.5 , "y": 1 },
+ { "matrix": [1, 2] , "x": 2.5 , "y": 1 },
+ { "matrix": [1, 3] , "x": 3.5 , "y": 1 },
+ { "matrix": [1, 4] , "x": 4.5 , "y": 1 },
+ { "matrix": [1, 5] , "x": 5.5 , "y": 1 },
+ { "matrix": [1, 6] , "x": 6.5 , "y": 1 },
+ { "matrix": [1, 7] , "x": 7.5 , "y": 1 },
+ { "matrix": [1, 8] , "x": 8.5 , "y": 1 },
+ { "matrix": [1, 9] , "x": 9.5 , "y": 1 },
+ { "matrix": [1, 10] , "x": 10.5 , "y": 1 },
+ { "matrix": [1, 11] , "x": 11.5 , "y": 1 },
+ { "matrix": [1, 12] , "x": 12.5 , "y": 1 },
+ { "matrix": [1, 13], "w": 1.5 , "x": 13.5 , "y": 1 },
+ { "matrix": [2, 0] , "w": 1.75 , "x": 0 , "y": 2 },
+ { "matrix": [2, 1] , "x": 1.75 , "y": 2 },
+ { "matrix": [2, 2] , "x": 2.75 , "y": 2 },
+ { "matrix": [2, 3] , "x": 3.75 , "y": 2 },
+ { "matrix": [2, 4] , "x": 4.75 , "y": 2 },
+ { "matrix": [2, 5] , "x": 5.75 , "y": 2 },
+ { "matrix": [2, 6] , "x": 6.75 , "y": 2 },
+ { "matrix": [2, 7] , "x": 7.75 , "y": 2 },
+ { "matrix": [2, 8] , "x": 8.75 , "y": 2 },
+ { "matrix": [2, 9] , "x": 9.75 , "y": 2 },
+ { "matrix": [2, 10] , "x": 10.75, "y": 2 },
+ { "matrix": [2, 11] , "x": 11.75, "y": 2 },
+ { "matrix": [2, 13], "w": 2.25 , "x": 12.75, "y": 2 },
+ { "matrix": [3, 0] , "w": 2.25 , "x": 0 , "y": 3 },
+ { "matrix": [3, 1] , "x": 2.25 , "y": 3 },
+ { "matrix": [3, 2] , "x": 3.25 , "y": 3 },
+ { "matrix": [3, 3] , "x": 4.25 , "y": 3 },
+ { "matrix": [3, 4] , "x": 5.25 , "y": 3 },
+ { "matrix": [3, 5] , "x": 6.25 , "y": 3 },
+ { "matrix": [3, 6] , "x": 7.25 , "y": 3 },
+ { "matrix": [3, 7] , "x": 8.25 , "y": 3 },
+ { "matrix": [3, 8] , "x": 9.25 , "y": 3 },
+ { "matrix": [3, 9] , "x": 10.25, "y": 3 },
+ { "matrix": [3, 10] , "x": 11.25, "y": 3 },
+ { "matrix": [3, 13], "w": 2.75 , "x": 12.25, "y": 3 },
+ { "matrix": [4, 0] , "w": 1.25 , "x": 0 , "y": 4 },
+ { "matrix": [4, 1] , "w": 1.25 , "x": 1.25 , "y": 4 },
+ { "matrix": [4, 2] , "w": 1.25 , "x": 2.5 , "y": 4 },
+ { "matrix": [4, 5] , "w": 6.25 , "x": 3.75 , "y": 4 },
+ { "matrix": [4, 9] , "w": 1.25 , "x": 10 , "y": 4 },
+ { "matrix": [4, 10], "w": 1.25 , "x": 11.25, "y": 4 },
+ { "matrix": [4, 11], "w": 1.25 , "x": 12.5 , "y": 4 },
+ { "matrix": [4, 13], "w": 1.25 , "x": 13.75, "y": 4 }
+ ]
+ }
+ }
+}
+
diff --git a/keyboards/black_hellebore/keymaps/default/keymap.c b/keyboards/black_hellebore/keymaps/default/keymap.c
new file mode 100644
index 000000000000..28e244b59ee9
--- /dev/null
+++ b/keyboards/black_hellebore/keymaps/default/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2023 MATTMCCA (@MATTMCCA)
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_60_ansi(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
+ )
+};
diff --git a/keyboards/black_hellebore/keymaps/via/keymap.c b/keyboards/black_hellebore/keymaps/via/keymap.c
new file mode 100644
index 000000000000..cba8bd9be9d8
--- /dev/null
+++ b/keyboards/black_hellebore/keymaps/via/keymap.c
@@ -0,0 +1,53 @@
+/* Copyright 2023 MATTMCCA (@MATTMCCA)
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_60_ansi(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
+ ),
+
+ [1] = LAYOUT_60_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [2] = LAYOUT_60_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [3] = LAYOUT_60_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
diff --git a/keyboards/black_hellebore/keymaps/via/rules.mk b/keyboards/black_hellebore/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/black_hellebore/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/black_hellebore/mcuconf.h b/keyboards/black_hellebore/mcuconf.h
new file mode 100644
index 000000000000..ccb216946c93
--- /dev/null
+++ b/keyboards/black_hellebore/mcuconf.h
@@ -0,0 +1,25 @@
+/* Copyright 2023 MATTMCCA (@MATTMCCA)
+ * SPDX-License-Identifier: GPL-2.0-only
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include_next
+
+#undef STM32_PWM_USE_ADVANCED
+#define STM32_PWM_USE_ADVANCED TRUE
+
+#undef STM32_PWM_USE_TIM1
+#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/black_hellebore/readme.md b/keyboards/black_hellebore/readme.md
new file mode 100644
index 000000000000..bd4bc3e4babe
--- /dev/null
+++ b/keyboards/black_hellebore/readme.md
@@ -0,0 +1,24 @@
+# The Black Hellebore
+
+* Keyboard Maintainer: [MATTMCCA](https://github.com/MATTMCCA)
+* Hardware Supported: *https://github.com/MATTMCCA/The-Black-Hellebore*
+* Hardware Availability: *https://github.com/MATTMCCA/The-Black-Hellebore*
+
+Make example for this keyboard (after setting up your build environment):
+
+ make black_hellebore:default
+
+Flashing example for this keyboard:
+
+ make black_hellebore:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+
diff --git a/keyboards/black_hellebore/rules.mk b/keyboards/black_hellebore/rules.mk
new file mode 100644
index 000000000000..5c0a6c7c0445
--- /dev/null
+++ b/keyboards/black_hellebore/rules.mk
@@ -0,0 +1,2 @@
+RGB_MATRIX_DRIVER = WS2812
+WS2812_DRIVER = pwm
diff --git a/keyboards/boardsource/lulu/avr/info.json b/keyboards/boardsource/lulu/avr/info.json
index ad7eefa77f7e..2c9155f6ad3e 100644
--- a/keyboards/boardsource/lulu/avr/info.json
+++ b/keyboards/boardsource/lulu/avr/info.json
@@ -15,7 +15,7 @@
},
"encoder": {
"rotary": [
- { "pin_a": "F0", "pin_b": "F1" }
+ { "pin_a": "F4", "pin_b": "F5" }
]
}
}
diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c
index adfcdc559c71..9a1c27ac8602 100644
--- a/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c
+++ b/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c
@@ -23,7 +23,7 @@ enum {
TD_ESC_WINDOWS_EMOJI
};
-void td_esc_spotlight_emoji (qk_tap_dance_state_t *state, void *user_data) {
+void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
tap_code(KC_ESC);
} else if (state->count == 2) {
@@ -33,7 +33,7 @@ void td_esc_spotlight_emoji (qk_tap_dance_state_t *state, void *user_data) {
}
}
-void td_esc_windows_emoji (qk_tap_dance_state_t *state, void *user_data) {
+void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
tap_code(KC_ESC);
} else if (state->count == 2) {
@@ -44,7 +44,7 @@ void td_esc_windows_emoji (qk_tap_dance_state_t *state, void *user_data) {
};
// Tap Dance definitions
-qk_tap_dance_action_t tap_dance_actions[] = {
+tap_dance_action_t tap_dance_actions[] = {
[TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji),
[TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji)
};
@@ -79,13 +79,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
+ KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
),
[3] = LAYOUT_ortho_3x10_7(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
+ KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
),
[4] = LAYOUT_ortho_3x10_7(
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
@@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
),
[7] = LAYOUT_ortho_3x10_7(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
diff --git a/keyboards/keychron/v2/v2.c b/keyboards/keychron/v2/v2.c
index 852a9637c4ca..7703c280df08 100644
--- a/keyboards/keychron/v2/v2.c
+++ b/keyboards/keychron/v2/v2.c
@@ -26,6 +26,17 @@ const matrix_row_t matrix_mask[] = {
#ifdef DIP_SWITCH_ENABLE
+bool dip_switch_update_kb(uint8_t index, bool active) {
+ if (!dip_switch_update_user(index, active)) { return false;}
+ if (index == 0) {
+ default_layer_set(1UL << (active ? 1 : 0));
+ }
+ return true;
+}
+
+#endif // DIP_SWITCH_ENABLE
+
+#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
if (!process_record_user(keycode, record)) { return false; }
switch (keycode) {
diff --git a/keyboards/splitkb/kyria/keymaps/via/keymap.c b/keyboards/splitkb/kyria/keymaps/via/keymap.c
index 9bbf127790e4..0849e8a7669f 100644
--- a/keyboards/splitkb/kyria/keymaps/via/keymap.c
+++ b/keyboards/splitkb/kyria/keymaps/via/keymap.c
@@ -34,23 +34,6 @@ enum layers { _BASE = 0, _NAV, _SYM, _FUNCTION, _ADJUST };
// produces the key `tap` when tapped (i.e. pressed and released).
// clang-format off
-#define LAYOUT_via( \
- L00, L01, L02, L03, L04, L05, LE0, LE1, RE0, RE1, R06, R07, R08, R09, R10, R11, \
- L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \
- L24, L25, L26, L27, L28, L29, L30, L31, R32, R33, R34, R35, R36, R37, R38, R39, \
- L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \
-) \
-{ \
- { LE0, LE1, L05, L04, L03, L02, L01, L00 }, \
- { RE0, RE1, L17, L16, L15, L14, L13, L12 }, \
- { L31, L30, L29, L28, L27, L26, L25, L24 }, \
- { L44, L43, L42, L41, L40, KC_NO, KC_NO, KC_NO }, \
- { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
- { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
- { R32, R33, R34, R35, R36, R37, R38, R39 }, \
- { R45, R46, R47, R48, R49, KC_NO, KC_NO, KC_NO }, \
-}
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Base Layer: QWERTY
@@ -66,8 +49,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | Enter| | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
- [_BASE] = LAYOUT_via(
- KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_VOLD, KC_VOLU, KC_PGDN, KC_PGUP, KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC,
+ [_BASE] = LAYOUT(
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC,
CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT,
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT,
ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
@@ -87,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
- [_NAV] = LAYOUT_via(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL,
+ [_NAV] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL,
_______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
+ _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______, KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
@@ -108,8 +91,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
- [_SYM] = LAYOUT_via(
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL ,
+ [_SYM] = LAYOUT(
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL ,
KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_NUBS, KC_LBRC, _______, _______, KC_RBRC, KC_NUHS, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
@@ -129,8 +112,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
- [_FUNCTION] = LAYOUT_via(
- _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ [_FUNCTION] = LAYOUT(
+ _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______,
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
@@ -150,100 +133,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
*/
- [_ADJUST] = LAYOUT_via(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ [_ADJUST] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-
+ )
};
// clang-format on
-#ifdef ENCODER_ENABLE
-static uint8_t encoder_state[2] = {0};
-static keypos_t encoder_ccw[2] = {{0, 0}, {0, 1}};
-static keypos_t encoder_cw[2] = {{1, 0}, {1, 1}};
-
-void encoder_action_unregister(void) {
- for (int index = 0; index < 2; ++index) {
- if (encoder_state[index]) {
- keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)};
- encoder_state[index] = 0;
- action_exec(encoder_event);
- }
- }
-}
-
-void encoder_action_register(uint8_t index, bool clockwise) {
- keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)};
- encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
- action_exec(encoder_event);
-}
-
-void matrix_scan_user(void) { encoder_action_unregister(); }
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- encoder_action_register(index, clockwise);
- return false;
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
+ [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ [4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
};
#endif
-
-#ifdef OLED_ENABLE
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- // QMK Logo and version information
- // clang-format off
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
- // clang-format on
-
- oled_write_P(qmk_logo, false);
- oled_write_P(PSTR("Kyria rev1.0 w/ VIA\n\n"), false);
-
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state | default_layer_state)) {
- case 0:
- oled_write_P(PSTR("Base\n"), false);
- break;
- case 1:
- oled_write_P(PSTR("Nav\n"), false);
- break;
- case 2:
- oled_write_P(PSTR("Sym\n"), false);
- break;
- case 3:
- oled_write_P(PSTR("Function\n"), false);
- break;
- case 4:
- oled_write_P(PSTR("Adjust\n"), false);
- break;
- }
-
- // Host Keyboard LED Status
- led_t led_usb_state = host_keyboard_led_state();
- oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
- oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
- oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
- } else {
- // clang-format off
- static const char PROGMEM kyria_logo[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
- // clang-format on
- oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
- }
- return false;
-}
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/via/rules.mk b/keyboards/splitkb/kyria/keymaps/via/rules.mk
index 9f383dfa2d73..0f12ae88e1cf 100644
--- a/keyboards/splitkb/kyria/keymaps/via/rules.mk
+++ b/keyboards/splitkb/kyria/keymaps/via/rules.mk
@@ -1,10 +1,10 @@
OLED_ENABLE = yes
OLED_DRIVER = SSD1306 # Enables the use of OLED displays
ENCODER_ENABLE = yes # Enables the use of one or more encoders
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
VIA_ENABLE = yes
NKRO_ENABLE = yes
KEY_LOCK_ENABLE = no
SPACE_CADET_ENABLE = no
MAGIC_ENABLE = no
GRAVE_ESCAPE_ENABLE = no
+ENCODER_MAP_ENABLE = yes