需将合盖策略设为“睡眠”或“关机”,再通过udev规则监听lid事件并执行xrandr --output HDMI-1 --off关闭外接屏,打开盖子后需手动运行xrandr --output HDMI-1 --auto恢复。

银河麒麟笔记本合盖后外接显示器仍亮屏,但你希望合盖时外接屏也同步息屏,而非保持常亮——这需要绕过系统默认的“合盖不休眠”逻辑,主动触发显示关闭动作,同时避免整机进入睡眠或黑屏卡死。
确认当前合盖策略已设为“不采取任何操作”
若此前为防止休眠已将合盖行为设为“不采取任何操作”,此时外接屏持续亮屏是预期结果。必须先还原该设置,否则后续强制息屏指令会被底层策略拦截。
点击「开始菜单」→「控制面板」→「电源管理」→ 切换至「电源选项」标签页。
将「使用交流电源时」和「使用电池时」两处的「合上盖子时」下拉菜单,均改为【睡眠】或【关机】——不能保留“不采取任何操作”,否则系统不会响应任何盖子事件,xrandr或脚本无法联动触发。
点击右下角「应用」按钮,此步是后续自动息屏的前提,缺一不可。
用xrandr命令在合盖瞬间关闭外接显示器
银河麒麟V10默认不支持合盖自动调用显示关闭脚本,需手动绑定lid事件与xrandr指令。该方法不依赖桌面环境,直接作用于X Server层,合盖即执行,响应快且稳定。
打开终端,执行:xrandr --listoutputs,确认外接显示器输出名(如HDMI-1、DP-1),记下名称。
创建临时关闭脚本:echo 'xrandr --output HDMI-1 --off' > ~/lid-off.sh && chmod +x ~/lid-off.sh——请将HDMI-1替换为你实际的外接屏设备名。
测试脚本是否生效:运行~/lid-off.sh,观察外接屏是否立即黑屏;若主屏也变黑,说明误关了eDP-1,请检查设备名是否写错。
【关键步骤】将脚本绑定到systemd-logind lid事件:执行sudo nano /etc/systemd/logind.conf,找到#HandleLidSwitch=行,取消注释并改为HandleLidSwitch=suspend(确保系统能捕获盖子动作);保存后执行sudo systemctl restart systemd-logind。
通过udev规则实现合盖即关外接屏(推荐)
systemd-logind仅支持全局动作(如suspend),无法执行自定义命令。真正可靠的方式是监听内核lid事件,用udev规则触发xrandr指令——它在盖子闭合瞬间就运行,比logind更早、更底层。
第一步:确认lid设备存在,运行ls /sys/firmware/acpi/handles/LID*,若有输出,说明ACPI lid开关已识别。
第二步:创建udev规则文件:sudo nano /etc/udev/rules.d/99-lid-off-external.rules。
第三步:写入以下内容(假设外接屏为HDMI-1):SUBSYSTEM=="power_supply", ACTION=="change", RUN+="/bin/sh -c 'if [ \"$(cat /proc/sys/kernel/lid_state 2>/dev/null)\" = \"closed\" ]; then export DISPLAY=:0; export XAUTHORITY=/home/$(who | awk '{print $1}')/.Xauthority; su $(who | awk '{print $1}') -c \"xrandr --output HDMI-1 --off\"; fi'
第四步:重载udev规则:sudo udevadm control --reload-rules && sudo udevadm trigger。
第五步:合上盖子,外接屏应在1秒内熄灭;打开盖子后,需手动运行xrandr --output HDMI-1 --auto恢复显示——该方案不自动唤醒,符合“息屏”本意。

















