如何使用xrandr为19英寸戴尔显示器设置合适的1920x1080自定义分辨率?
如何使用xrandr为19英寸戴尔显示器设置合适的1920x1080自定义分辨率?
首先看你遇到的问题,有两个关键的细节出错了,咱们一步步来排查解决:
1. 第一处错误:自定义模式名称不匹配
你用xrandr --newmode定义的模式名称是1920x1080_60.00,但后面执行--addmode和--output时用的是1920x1080,名称完全对不上,系统找不到对应的模式,这肯定会触发报错!
先执行下面的命令修正这个问题:
# 先删掉错误添加的无效模式(如果存在的话) xrandr --delmode XWAYLAND0 1920x1080 # 用正确的模式名称添加到显示器 xrandr --addmode XWAYLAND0 1920x1080_60.00 # 再尝试设置目标分辨率 xrandr --output XWAYLAND0 --mode 1920x1080_60.00
2. 第二处核心问题:Wayland会话下xrandr的限制
你看到显示器输出名称是XWAYLAND0,说明当前是Wayland桌面会话——xrandr原本是Xorg的工具,在Wayland下只能通过Xwayland模拟运行,很多底层的分辨率设置操作会被限制,这也是你拿到BadValue错误的主要原因。
解决方法一:切换到Xorg会话(最稳妥)
Wayland虽然是主流趋势,但对老的xrandr操作支持不够友好,切换到Xorg能避开这个限制:
- 先注销当前用户,在登录界面点击右上角的齿轮图标,选择「Ubuntu on Xorg」后重新登录。
- 登录后运行
xrandr,查看你的戴尔显示器的真实输出名称(比如HDMI-1、DP-2这类,不再是XWAYLAND0)。 - 把之前的命令里的
XWAYLAND0换成真实的输出名称,比如:
这样操作的成功率会高很多。xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode HDMI-1 1920x1080_60.00 xrandr --output HDMI-1 --mode 1920x1080_60.00
解决方法二:Wayland下用原生工具(不想换Xorg的话)
如果坚持用Wayland,就得用Wayland原生的工具替代xrandr:
- 如果你用的是Sway这类基于wlroots的桌面,可以用
wlr-randr工具:# 先查看显示器的真实名称 wlr-randr # 添加并设置自定义分辨率 wlr-randr --output <你的显示器名称> --add-mode 1920x1080@60Hz wlr-randr --output <你的显示器名称> --mode 1920x1080@60Hz - 如果你用的是GNOME Wayland,可以试试通过
gsettings调整,或者安装gnome-tweaks查看分辨率选项,但自定义分辨率的配置会比Xorg繁琐一些。
额外小提示
- 再确认下你的19英寸戴尔显示器确实支持1920x1080分辨率,虽然你说知道合适,但部分19英寸显示器的最佳分辨率是1440x900,强行设置不支持的分辨率可能会黑屏或报错。
- 你的
/etc/profile.d/external_monitor_resol.sh脚本要确保有执行权限:chmod +x /etc/profile.d/external_monitor_resol.sh,而且在Xorg环境下登录时会自动执行,Wayland下可能无法触发。
备注:内容来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

