Ubuntu系统下主显示器无响应时自动切换副显示器为主显示器的方法
解决Ubuntu关闭外接显示器后自动切换笔记本为主显示器的问题
方法1:编写监听脚本自动切换
识别显示器设备名
运行命令xrandr,从输出中找到你的笔记本屏幕(通常是eDP-1或LVDS-1)和外接显示器(比如HDMI-1或DP-1)的名称。创建切换脚本
在用户目录下新建display-switch.sh文件,内容如下:#!/bin/bash # 替换为你的笔记本屏幕名称 LAPTOP_SCREEN="eDP-1" # 替换为你的外接显示器名称 EXTERNAL_SCREEN="HDMI-1" while true; do # 获取外接显示器状态 EXTERNAL_STATUS=$(xrandr | grep "$EXTERNAL_SCREEN" | awk '{print $2}') if [ "$EXTERNAL_STATUS" == "disconnected" ] || [ "$EXTERNAL_STATUS" == "inactive" ]; then # 切换笔记本屏幕为主显示器 xrandr --output "$LAPTOP_SCREEN" --auto --primary else # 恢复外接为主、笔记本为副的布局(可根据你的实际布局调整参数) xrandr --output "$EXTERNAL_SCREEN" --auto --primary --output "$LAPTOP_SCREEN" --auto --right-of "$EXTERNAL_SCREEN" fi # 每2秒检测一次状态 sleep 2 done赋予脚本执行权限
执行命令:chmod +x ~/display-switch.sh设置开机自启
- 打开「启动应用程序」工具
- 点击「添加」,名称填「Display Auto Switch」,命令选择刚才创建的脚本路径(如
/home/你的用户名/display-switch.sh),注释可写「自动切换主显示器」 - 保存后重启系统,脚本会后台监听显示器状态
方法2:用udev规则触发切换(针对硬件状态变化)
如果关闭外接显示器时设备会发送硬件状态变更信号,可通过udev规则自动触发脚本:
- 创建udev规则文件:
sudo nano /etc/udev/rules.d/99-display-switch.rules,写入内容:SUBSYSTEM=="drm", ACTION=="change", RUN+="/home/你的用户名/display-switch.sh" - 重新加载udev规则:
sudo udevadm control --reload-rules && sudo udevadm trigger
注意事项
- 务必替换脚本中的显示器名称为你实际的设备名,可通过
xrandr命令确认 - 若你的双屏布局不是
--right-of,可调整脚本内的布局参数(如--left-of、--below) - 测试时可手动运行脚本,关闭外接显示器验证切换效果
内容的提问来源于stack exchange,提问作者Subash A
相关产品推荐
相关产品推荐

