aboutsummaryrefslogtreecommitdiff
path: root/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@dailly.me>2026-02-20 14:57:00 +0100
committerSébastien Dailly <sebastien@dailly.me>2026-02-20 14:57:00 +0100
commit99ef365eb092bde14d0db1c8734466037e3e1e75 (patch)
tree6bca604884a20079fb2b5fcd673dea22dc166b24 /qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
parent323ea6967ff94761f2ca20779d9012090c395e1a (diff)
Added a way to set the brigthness of the keyboardHEADmaster
Diffstat (limited to 'qmk/keyboards/sofle_choc/keymaps/custom/lighting.c')
-rw-r--r--qmk/keyboards/sofle_choc/keymaps/custom/lighting.c44
1 files changed, 17 insertions, 27 deletions
diff --git a/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c b/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
index 5617837..d8e0b6e 100644
--- a/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
+++ b/qmk/keyboards/sofle_choc/keymaps/custom/lighting.c
@@ -9,14 +9,16 @@
extern bool is_star;
// Set the color at the given position, but limit the intensity
-void set_color(uint8_t index, uint8_t h, uint8_t s, uint8_t _) {
- HSV hsv = {h, s, RGB_MATRIX_MAXIMUM_BRIGHTNESS};
+void set_color(uint8_t index, uint8_t h, uint8_t s, uint8_t v) {
+ if (v > 20 + rgb_matrix_get_val())
+ v = 20 + rgb_matrix_get_val();
+ HSV hsv = {h, s, v};
RGB rgb = hsv_to_rgb(hsv);
rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b);
}
HSV hsv_of_color(uint8_t h, uint8_t s, uint8_t v) {
- return (HSV){h, s, v > 100 ? 100:v};
+ return (HSV){h, s, v > rgb_matrix_get_val() ? rgb_matrix_get_val():v};
}
void lighting_init(void) {
@@ -46,19 +48,15 @@ void housekeeping_task_lighting(void) {
hsv_of_color(HSV_WHITE), // 111
};
- uint8_t counter = 0;
uint8_t flags = 0;
if (get_mods() & MOD_MASK_CTRL) {
flags |= 0b001;
- counter += 1;
}
if (one_shot_alt_flag || (get_mods() & MOD_MASK_ALT)) {
flags |= 0b010;
- counter += 1;
}
if ((get_mods() & MOD_MASK_SHIFT) || host_keyboard_led_state().caps_lock) {
flags |= 0b100;
- counter += 1;
}
uint8_t matrix_mode = rgb_matrix_get_mode();
@@ -75,12 +73,9 @@ void housekeeping_task_lighting(void) {
if (matrix_mode != RGB_MATRIX_SOLID_COLOR) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
}
- uint8_t v = colors[flags].v;
- if (counter >= 2)
- v *= 2;
- rgb_matrix_sethsv_noeeprom(colors[flags].h, colors[flags].s, v);
+ rgb_matrix_sethsv_noeeprom(colors[flags].h, colors[flags].s, rgb_matrix_get_val());
} else if (matrix_mode != RGB_MATRIX_SOLID_REACTIVE_SIMPLE) {
- rgb_matrix_sethsv_noeeprom(HSV_WHITE);
+ rgb_matrix_sethsv_noeeprom(0, 0, rgb_matrix_get_val());
rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_SIMPLE);
}
}
@@ -90,14 +85,6 @@ void housekeeping_task_lighting(void) {
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
// Activate effects depending of mods
- if (is_caps_word_on()) {
- if (rgb_matrix_get_mode() != RGB_MATRIX_BREATHING) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_BREATHING);
- }
- rgb_matrix_sethsv_noeeprom(HSV_SPRINGGREEN);
- return false;
- }
-
for (uint8_t row = 0; row < MATRIX_ROWS; ++row) {
for (uint8_t col = 0; col < MATRIX_COLS; ++col) {
uint8_t index = g_led_config.matrix_co[row][col];
@@ -109,26 +96,25 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
uint16_t keycode = keymap_key_to_keycode(layer, (keypos_t){col,row});
if (keycode == KC_O && is_star) {
- rgb_matrix_set_color(index, 100, 100, 0);
+ set_color(index, 42, 255, 255);
}
if (layer == 0)
continue;
-
switch (keycode) {
case KC_F1 ... KC_F11:
- rgb_matrix_set_color(index, 128, 128, 128);
+ set_color(index, 0, 0, 128);
break;
case KC_P1 ... KC_P0:
case KEY_6:
- rgb_matrix_set_color(index, 100, 100, 0);
+ set_color(index, 42, 255, 255);
break;
case BP_CCED:
case BP_PERC:
case KC_PDOT:
// Add a bit of red for the punction symbol
- rgb_matrix_set_color(index, 150, 50, 0);
+ set_color(index, 20, 255, 255);
break;
case KC_RIGHT:
case KEY_DOWN:
@@ -136,17 +122,21 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
case KC_PGUP:
case KC_PGDN:
case KEY_PGDN:
- rgb_matrix_set_color(index, 32, 32, 128);
+ set_color(index, 170, 255, 223);
break;
case KC_HOME:
case KC_END:
- rgb_matrix_set_color(index, RGB_SPRINGGREEN);
+ set_color(index, HSV_SPRINGGREEN);
break;
case KC_BSPC:
case AL_SPC:
case AL_ENT:
set_color(index, HSV_BLUE);
break;
+ case QK_RGB_MATRIX_VALUE_UP:
+ case QK_RGB_MATRIX_VALUE_DOWN:
+ set_color(index, HSV_GREEN);
+ break;
}
}