必须先确认输出设备名和当前会话是否支持x11——wayland下xrandr失效,虚拟机常见virtual1而非hdmi-1;查接口名需运行xrandr -q找connected行;cvt生成参数后须严格复制modeline全字段;--addmode仅注册模式,须用--output显式启用;永久生效应加至用户启动脚本而非xorg.conf;wayland不兼容xrandr,需切换x11会话。

能加,但必须先确认输出设备名和当前会话是否支持X11 —— Wayland下xrandr直接失效,而虚拟机里常见的是Virtual1不是HDMI-1。
怎么查准你的显示器接口名(别硬写HDMI-1)
很多教程直接让你填HDMI-1或eDP-1,结果命令报错cannot find output "HDMI-1"。真实情况是:接口名由显卡驱动和连接方式决定,不是固定值。
- 运行
xrandr -q,找带connected且后面有分辨率数字的那一行,例如:Virtual1 connected primary 1920x1200+0+0→ 接口名就是Virtual1 - 虚拟机(VMware/VirtualBox)大概率是
Virtual1或VMware-0;笔记本物理机常见eDP-1;外接显示器多为HDMI-1、DP-1或DisplayPort-1 - 如果
xrandr输出里全是disconnected,说明没进图形会话,或者当前是Wayland(Ubuntu 22.04+默认),此时xrandr不生效
cvt生成参数后,--newmode要严格复制粘贴
cvt 1920 1080 60输出的Modeline行,引号内名称和所有数字、符号都必须原样传给xrandr --newmode。少一个空格、多一个引号都会导致--addmode失败。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 正确示例:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync - 常见错误:漏掉末尾的
-hsync +vsync;把1920x1080_60.00写成1920x1080;用中文引号“”代替英文引号"" - 刷新率不一定要60,如果显示器支持144Hz,就用
cvt 1920 1080 144,但需确认硬件真能跑满
--addmode之后,-s或--mode才能生效
添加模式只是注册进系统,不会自动切换。必须显式调用才真正应用,而且方式有区别:
- 临时切换(重启即丢):
xrandr --output Virtual1 --mode "1920x1080_60.00"(推荐,比-s更明确) -
xrandr -s 1920x1080_60.00可能失败,因为它不指定输出设备,X server会自己猜,容易选错 - 想永久生效?别改
/etc/X11/xorg.conf——现代发行版(Ubuntu 20.04+、Deepin 23、Fedora 38+)基本不读这个文件。改用户级启动脚本更可靠,比如把xrandr命令加到~/.profile或桌面环境的开机自启项里
为什么加了还是不见1920x1080选项?重点检查这三点
执行完全部命令,去系统设置→显示里仍找不到新分辨率,问题通常出在以下环节:
- 你用的是Wayland会话(GNOME默认、KDE可选):Wayland不兼容
xrandr,必须切回X11登录(登录界面右下角选“Ubuntu on Xorg”或类似选项) -
--addmode时用的接口名和--output时不一致,比如--addmode HDMI-1但--output Virtual1 - 分辨率超出显卡或虚拟GPU能力:VirtualBox默认VRAM只有12MB,低于256MB时1920x1080可能被拒绝,需在虚拟机设置里调高显存并启用3D加速
最常被忽略的一点:所有xrandr操作只对当前X session有效。换用户、登出重进、甚至从锁屏恢复后,都得重新执行一遍——除非你把它固化进自动启动流程。而那个“添加后就能在GUI里点选”的预期,只在X11下稳定成立;Wayland用户要么换回X11,要么接受它原生不支持动态添加模式的事实。










