Sofle键盘QMK RGB层单侧点亮异常求助
Sofle键盘RGB层同步问题解决
问题现象
启用RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF后,当RGB处于全局关闭状态时,触发层按键仅USB连接的主设备侧RGB点亮,从设备侧保持关闭;但RGB开启状态下,层触发时两侧RGB颜色可正常同步。
当前配置
config.h中RGBLIGHT相关配置
#ifdef RGBLIGHT_ENABLE #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ #define RGBLIGHT_LAYERS #define RGBLIGHT_MAX_LAYERS 4 #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF #define RGBLIGHT_LAYERS_RETAIN_VAL #define RGB_DI_PIN D3 #define RGBLED_NUM 72 #define RGBLIGHT_LIMIT_VAL 150 #define RGB_SPLIT {36,36} #define SPLIT_TRANSPORT_MIRROR #define RGBLIGHT_SPLIT #define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_DEFAULT_HUE 180 #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 10 #define RGBLIGHT_VAL_STEP 10 #endif
rules.mk配置
MCU = atmega32u4 BOOTLOADER = halfkay OLED_ENABLE = yes OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes ENCODER_MAP_ENABLE = yes VIA_ENABLE = yes VIAL_ENABLE = yes RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight/underglow SPLIT_KEYBOARD = yes WPM_ENABLE = yes EXTRAKEY_ENABLE = yes # Audio control and System control LTO_ENABLE = yes VIAL_INSECURE = yes MOUSEKEY_ENABLE = yes # Mouse keys # SPLIT_TRANSPORT = custom QMK_SETTINGS = no GRAVE_ESC_ENABLE = no MAGIC_ENABLE = no COMBO_ENABLE = no ONE_SHOT_KEYS_ENABLE = no AUTO_SHIFT_ENABLE = no KEY_OVERRIDE_ENABLE = no COMMAND_ENABLE = no # Commands for debug and configuration CONSOLE_ENABLE = no # Console for debug SPACE_CADET_ENABLE = no MIDI_ENABLE = no RGB_MATRIX_ENABLE = no BACKLIGTH_ENABLE = no # Enable keyboard backlight functionality VERBOSE = no # Do not enable SLEEP_LED_ENABLE with backlight. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend #BACKLIGHT_DRIVER = pwm BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output TAP_DANCE_ENABLE = no AVR_USE_MINIMAL_PRINTF = yes
解决步骤
在
config.h的RGBLIGHT_ENABLE代码块中添加层状态同步定义:#define SPLIT_LAYER_STATE_ENABLE该定义会强制主设备将当前激活的层状态同步到从设备,确保从设备能感知到层触发事件,进而执行
RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF的强制点亮逻辑。重新编译固件,分别刷入主、从设备两侧。
测试验证:关闭RGB后触发层按键,两侧RGB应同步点亮对应层的颜色。
补充说明
问题根源在于RGB全局关闭时,从设备未收到主设备的层激活信号,导致无法触发RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF的灯光逻辑。添加层状态同步定义后,主从设备的层状态保持一致,从设备会根据层状态和RGB配置自动响应灯光效果。
内容的提问来源于stack exchange,提问作者Paulo
相关产品推荐
相关产品推荐

