必须用xrandr手动控制才能精确设置双屏位置和分辨率:先运行xrandr查输出名(如eDP-1、HDMI-2)和可用mode,再用--pos直接设像素坐标(如--pos 1920x0)、--mode指定分辨率,并确保Virtual size足够支撑双屏总宽高,否则X Server会静默降级或裁剪。

怎么用 xrandr 精确设置双屏位置和分辨率
直接靠图形界面拖动显示器图标,常导致鼠标越界卡顿、窗口默认弹错屏、缩放不一致——根本原因是它没显式指定像素级坐标和 mode。必须用 xrandr 手动控制。
先运行 xrandr 查看输出名(如 eDP-1、HDMI-2)和可用 mode。注意:名称大小写敏感,且不同硬件差异大(笔记本常用 eDP-1,台式机可能是 DP-1 或 HDMI-1)。
-
--right-of/--left-of只定义相对方位,不保证像素对齐;实际位置由前一个屏幕的+x+y偏移推导,容易偏移几像素 - 更稳妥的是用
--pos直接设坐标,例如主屏 1920×1080,副屏放右边:--pos 1920x0 - 务必搭配
--mode而非仅--auto,否则可能 fallback 到低刷新率或错误比例(尤其 4K+2K 混搭时) - 如果
xrandr --query显示某屏为disconnected,不是命令问题,是物理连接或输入源未切对
为什么设置了 --right-of 却显示错位或黑边
因为 xrandr 的布局计算依赖 Screen 0 的 maximum 分辨率限制。这个值默认是“单屏最大宽高中的较大值”的平方(比如两屏最大分别是 3840×2160 和 2560×1440,maximum 可能被设成 3840×3840),而双屏总宽 3840+2560=6400 已远超该上限,X server 就会静默降级或裁剪。
查当前限制:xrandr --verbose | grep maximum。若总宽高超过它,必须扩大 Virtual size:
- 编辑
/etc/X11/xorg.conf,在Section "Screen"内加:SubSection "Display"<br> Virtual 6400 2160<br>EndSubSection
- 重启显示服务(或直接 reboot),再运行
xrandr应看到maximum已更新 - Wayland 用户绕不开此限制:目前
wlr-randr不支持 Virtual size,遇到同样报错只能切回 Xorg 登录(登录界面选 “Ubuntu on Xorg”)
如何让双屏缩放独立且窗口不乱跳
GNOME 默认对所有屏统一应用主屏缩放比例,导致 HiDPI 屏文字过小、普通屏模糊。这不是 xrandr 能解决的层级,得进 GNOME 设置底层。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
先确认会话类型:echo $XDG_SESSION_TYPE。只有 Xorg 下才能稳定生效:
- 对副屏单独缩放(如主屏 100%,副屏 200%):
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']",然后重启 GNOME Shell(Alt+F2→ 输入r→ 回车) - 之后在“设置 → 显示器”里,每块屏下方会出现独立的“缩放”滑块(此前是灰掉的)
- 若窗口仍默认弹到错误屏幕,检查
gsettings get org.gnome.shell.overrides workspaces-only-on-primary是否为false;如果是true,窗口会被强制限制在主屏工作区
开机自动加载双屏配置的可靠写法
把 xrandr 命令丢进“启动应用程序”常失效——因为 GNOME 启动早于显示服务就绪,命令执行时显示器可能尚未被识别。
真正可靠的方案是用 systemd user service,确保在 graphical-session.target 之后运行:
- 创建
$HOME/.config/systemd/user/monitor-setup.service,内容含Type=oneshot和ExecStart=/usr/bin/xrandr --output HDMI-1 --right-of eDP-1 --mode 3840x2160 --scale 1x1 - 启用:
systemctl --user daemon-reload && systemctl --user enable monitor-setup.service - 关键点:不要加
WantedBy=default.target,改用WantedBy=graphical-session.target,否则可能抢在 X server 初始化前执行 - 调试时先手动运行一遍命令,确认无
Configure crtc 0 failed类错误;有则说明 mode 不匹配或 Virtual size 不足
最易被忽略的是:--scale 参数看似用于缩放,实则触发 framebuffer 重采样,会显著影响光标移动平滑度和视频播放性能。除非真需要非整数缩放(如 125%),否则优先用 --mode 匹配原生分辨率 + GNOME 独立缩放控制。

















