diff --git a/keyboards/minidox/keymaps/sadekbaroudi/config.h b/keyboards/minidox/keymaps/sadekbaroudi/config.h index 6133878d9a..7d29dd1243 100644 --- a/keyboards/minidox/keymaps/sadekbaroudi/config.h +++ b/keyboards/minidox/keymaps/sadekbaroudi/config.h @@ -11,5 +11,6 @@ # define RGBLED_SPLIT \ { 9, 9 } # define RGBLIGHT_SPLIT -# define RGBLIGHT_LED_MAP {6,7,8,0,1,2,3,4,5,14,13,12,11,10,9,17,16,15} +# define SPLIT_LAYER_STATE_ENABLE +//# define RGBLIGHT_LED_MAP {6,7,8,0,1,2,3,4,5,14,13,12,11,10,9,17,16,15} #endif \ No newline at end of file diff --git a/keyboards/minidox/keymaps/sadekbaroudi/keymap.c b/keyboards/minidox/keymaps/sadekbaroudi/keymap.c index ec862f0f79..5079130093 100644 --- a/keyboards/minidox/keymaps/sadekbaroudi/keymap.c +++ b/keyboards/minidox/keymaps/sadekbaroudi/keymap.c @@ -108,3 +108,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; + + +bool rgb_base_layer_keymap(layer_state_t state) { + #ifdef RGBLIGHT_ENABLE + rgblight_sethsv_range(HSV_PURPLE, 0, 9); + rgblight_sethsv_range(16, 255, 255, 9, RGBLED_NUM); + #endif + + return true; +} \ No newline at end of file diff --git a/keyboards/minidox/keymaps/sadekbaroudi/rules.mk b/keyboards/minidox/keymaps/sadekbaroudi/rules.mk index 7ad666d1a3..bb6483f9a8 100644 --- a/keyboards/minidox/keymaps/sadekbaroudi/rules.mk +++ b/keyboards/minidox/keymaps/sadekbaroudi/rules.mk @@ -1 +1,3 @@ -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes +MOUSEKEY_ENABLE = no +COMMAND_ENABLE = no \ No newline at end of file diff --git a/users/sadekbaroudi/config.h b/users/sadekbaroudi/config.h index 2c31f66b25..814775660e 100755 --- a/users/sadekbaroudi/config.h +++ b/users/sadekbaroudi/config.h @@ -28,7 +28,7 @@ # define RGBLIGHT_SLEEP # define RGBLIGHT_LAYERS # define RGBLIGHT_MAX_LAYERS 16 -# define RGBLIGHT_STARTUP_ANIMATION true +//# define RGBLIGHT_STARTUP_ANIMATION true #endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE diff --git a/users/sadekbaroudi/rgb_stuff.c b/users/sadekbaroudi/rgb_stuff.c index dfe08b9c00..16a610b3c0 100755 --- a/users/sadekbaroudi/rgb_stuff.c +++ b/users/sadekbaroudi/rgb_stuff.c @@ -85,6 +85,9 @@ void rgb_set_user_config_from_current_values() { #endif } +// return false if you want the parent logic to run +__attribute__((weak)) bool rgb_base_layer_keymap(layer_state_t state) { return false; } + layer_state_t layer_state_set_rgb_light(layer_state_t state) { #ifdef RGBLIGHT_ENABLE if (userspace_config.rgb_layer_change) { @@ -114,18 +117,21 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) { trackball_set_hsv(userspace_config.hue, userspace_config.sat, userspace_config.val); #endif } else { // if base layer override is disabled, always show the base setting - uint8_t base_layer_rgb_hue = 167; // BLUE - uint8_t base_layer_rgb_mode = mode; - #ifdef BASE_LAYER_RGB_HUE - base_layer_rgb_hue = BASE_LAYER_RGB_HUE; - #endif - #ifdef BASE_LAYER_RGB_MODE - base_layer_rgb_mode = BASE_LAYER_RGB_MODE; - #endif - rgblight_set_hsv_and_mode(base_layer_rgb_hue, 255, 255, base_layer_rgb_mode); - #ifdef PIMORONI_TRACKBALL_ENABLE - trackball_set_hsv(base_layer_rgb_hue, 255, 255); - #endif + // This allows you to override the base layer rgb behavior for a given keyboard by defining this function in the keymap.c + if (!rgb_base_layer_keymap(state)) { + uint8_t base_layer_rgb_hue = 167; // BLUE + uint8_t base_layer_rgb_mode = mode; + #ifdef BASE_LAYER_RGB_HUE + base_layer_rgb_hue = BASE_LAYER_RGB_HUE; + #endif + #ifdef BASE_LAYER_RGB_MODE + base_layer_rgb_mode = BASE_LAYER_RGB_MODE; + #endif + rgblight_set_hsv_and_mode(base_layer_rgb_hue, 255, 255, base_layer_rgb_mode); + #ifdef PIMORONI_TRACKBALL_ENABLE + trackball_set_hsv(base_layer_rgb_hue, 255, 255); + #endif + } } break; case _QWERTY: diff --git a/users/sadekbaroudi/rgb_stuff.h b/users/sadekbaroudi/rgb_stuff.h index e4850ee44f..e0465f09ac 100755 --- a/users/sadekbaroudi/rgb_stuff.h +++ b/users/sadekbaroudi/rgb_stuff.h @@ -4,6 +4,7 @@ bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record); void keyboard_post_init_rgb_light(void); void matrix_scan_rgb_light(void); +bool rgb_base_layer_keymap(layer_state_t state); layer_state_t layer_state_set_rgb_light(layer_state_t state); layer_state_t default_layer_state_set_rgb_light(layer_state_t state); void rgblight_sethsv_default_helper(uint8_t index); diff --git a/users/sadekbaroudi/rules.mk b/users/sadekbaroudi/rules.mk index 409fc34cad..e768863bcd 100755 --- a/users/sadekbaroudi/rules.mk +++ b/users/sadekbaroudi/rules.mk @@ -10,6 +10,7 @@ NKRO_ENABLE = no RAW_ENABLE = no CASEMODES_ENABLE = yes COMBO_ENABLE = yes +LTO_ENABLE = yes # UNCOMMENT TO DISABLE MACROS #EXTRAFLAGS += -flto diff --git a/users/sadekbaroudi/sadekbaroudi.c b/users/sadekbaroudi/sadekbaroudi.c index 013a5b2fb3..20c5965982 100755 --- a/users/sadekbaroudi/sadekbaroudi.c +++ b/users/sadekbaroudi/sadekbaroudi.c @@ -268,4 +268,18 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { default: return TAPPING_TERM; } -} \ No newline at end of file +} + + +// This was added to deal with this issue: +// * https://www.reddit.com/r/olkb/comments/mwf5re/help_needed_controlling_individual_rgb_leds_on_a/ +// * https://github.com/qmk/qmk_firmware/issues/12037 +#ifdef SPLIT_KEYBOARD +void housekeeping_task_user(void) { + static layer_state_t old_layer_state = 0; + if (!is_keyboard_master() && old_layer_state != layer_state) { + old_layer_state = layer_state; + layer_state_set_user(layer_state); + } +} +#endif \ No newline at end of file