You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

解决步骤

  1. 在config.h的RGBLIGHT_ENABLE代码块中添加层状态同步定义:

    #define SPLIT_LAYER_STATE_ENABLE
    

    该定义会强制主设备将当前激活的层状态同步到从设备,确保从设备能感知到层触发事件,进而执行RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF的强制点亮逻辑。

  2. 重新编译固件,分别刷入主、从设备两侧。

  3. 测试验证:关闭RGB后触发层按键,两侧RGB应同步点亮对应层的颜色。

补充说明

问题根源在于RGB全局关闭时,从设备未收到主设备的层激活信号,导致无法触发RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF的灯光逻辑。添加层状态同步定义后,主从设备的层状态保持一致,从设备会根据层状态和RGB配置自动响应灯光效果。

内容的提问来源于stack exchange,提问作者Paulo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:43:26