先查xrandr输出中是否有目标分辨率,有则直接xrandr --output设备名--mode分辨率切换;无则用cvt生成modeline,再依次执行--newmode、--addmode、--mode添加启用,开机生效需写入~/.xprofile或~/.profile。

直接看
xrandr 输出里有没有你要的分辨率。有,就用
--mode 一把切过去;没有,就得自己造一个模式再加进去——别硬试不支持的值,黑屏或报错是常态。
怎么查当前显示器名和已有分辨率
xrandr 命令输出里,带星号(
*)的是当前生效的分辨率,每块显示器(如
eDP-1、
HDMI-2)会列出它原生支持的所有模式。注意:
- 输出中第一列是显示器名称,不是设备文件路径,也不是
/dev/xxx
- 有些虚拟机或远程桌面环境(比如 VNC、NoMachine)可能只暴露一个叫
Virtual1 或 default 的输出,此时 xrandr --listmonitors 更直观
- 如果只看到一行且无其他选项,说明显卡驱动没加载全,或 EDID 读取失败,先别急着加模式
用 xrandr 临时切换分辨率
只要目标分辨率在
xrandr 列表里,执行这条命令就行:
xrandr --output HDMI-1 --mode 1920x1080
关键点:
-
--output 后必须是 xrandr 显示出的准确名称,大小写、短横线都不能错
-
--mode 后填的是列表里写的完整字符串,比如 "1920x1080_60.00"(含下划线和小数点),不是 1920x1080
- 改完立刻生效,但重启后还原——这不是 bug,是 X11 的默认行为
- 如果执行后黑屏/花屏,等 15 秒会自动回退;也可盲打
xrandr --output HDMI-1 --auto 恢复默认
添加一个系统原本不支持的分辨率
典型场景:笔记本外接 4K 显示器,但
xrandr 只列出 1080p;或老显卡对某分辨率刷新率识别不准。流程分三步:
⚠️ 容易踩坑:
-
--newmode 名称里不能有空格,建议用下划线连接,比如 "2560x1440_59.95",别写成 "2560x1440@59.95"
- 某些 Intel 核显在 Wayland 下不认
xrandr 新增模式,得切回 X11 会话再试
-
cvt 生成的参数只是理论值,实际能否点亮取决于显示器 EDID 和显卡固件是否接受该时序
让分辨率设置开机不变
临时命令不管用,得固化。最可靠的方式是把
xrandr 命令塞进用户级启动脚本:
真正麻烦的从来不是“怎么设”,而是“为什么设了不持久”——因为显示服务启动顺序、会话类型(X11/Wayland)、甚至登录管理器(GDM/SDDM)都可能拦截或覆盖你的配置。先确认
xrandr 命令本身能跑通,再谈保存。