直接运行xrandr可列出所有连接显示器(如edp-1、hdmi-1)、当前激活状态及各输出支持的分辨率与刷新率组合,带*的为当前模式;若目标模式(如1920x1080_60.00)未出现,需用cvt生成modeline并依序执行--newmode、--addmode、--output --mode三步绑定,注意引号匹配与刷新率整数指定,且设置仅限当前会话,持久化需写入~/.xprofile。

如何用 xrandr 查看当前显示器输出和可用模式
直接运行 xrandr 就能列出所有连接的显示器、当前激活状态、以及每个输出设备(如 eDP-1、HDMI-1、Virtual1)支持的分辨率与刷新率组合。关键信息包括:
- 每行以输出名开头,后跟
connected表示已识别; - 带
*的分辨率是当前正在使用的; - 同一行中多个分辨率并列,但**不显示刷新率**——它隐含在模式名里,或需配合
--verbose查看。
如果目标分辨率(比如 1920x1080_60.00)没出现在列表里,说明系统没自动识别该模式,必须手动添加。
为什么 cvt 生成的 Modeline 要带刷新率参数
cvt 默认按 60Hz 生成,但很多显示器实际支持 59.96Hz、75Hz 甚至 144Hz。不指定刷新率,生成的 Modeline 可能和硬件不匹配,导致 xrandr --mode 应用失败或黑屏。
- 正确写法:
cvt 1920 1080 60(注意末尾数字,不是小数点); - 错误写法:
cvt 1920 1080 60.00或cvt 1920 1080(后者默认 60Hz,但某些显卡驱动会拒绝非整数标识); - 输出中的
Modeline字符串必须**完整复制**,尤其是引号、空格、-hsync +vsync顺序不能错,否则--newmode会报invalid argument。
如何将自定义分辨率+刷新率绑定到具体输出设备
三步缺一不可,且顺序不能颠倒:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 先执行
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync(引号内名称必须和cvt输出一致); - 再执行
xrandr --addmode HDMI-1 "1920x1080_60.00"(HDMI-1换成你自己的输出名,且必须已存在); - 最后执行
xrandr --output HDMI-1 --mode "1920x1080_60.00"(加引号!否则 xrandr 会当成普通分辨率名处理,找不到模式)。
常见坑:--mode 后面不加引号,或引号里名字和 --newmode 定义的不完全一致(比如少了下划线、大小写错),都会触发 Configure crtc 0 failed 错误。
为什么重启后设置丢失,以及如何持久化
xrandr 命令只作用于当前 X session,关机或重启即失效。想永久生效,不能靠改 /etc/X11/xorg.conf(现代 Ubuntu 大多不用它),而是把命令加进桌面环境启动脚本:
- 对 GNOME:编辑
~/.profile或~/.xprofile(后者更可靠),每行一条命令,确保以xrandr开头; - 避免写进
~/.bashrc——它只在终端启动时读取,不影响图形登录; - 虚拟机用户额外注意:
Virtual1这类输出名可能每次启动都变,建议先用xrandr | grep connected动态获取,或依赖增强工具自动适配。
真正容易被忽略的是:某些显卡驱动(尤其是开源 amdgpu 或 intel)在启动早期就锁定 EDID 信息,如果显示器未在开机时通电,后续 xrandr 添加的模式可能根本无法激活——务必保证显示器全程供电。










