XRandR 裁剪某些多显示器配置上的显示区域

mon*_*nen 5 xorg x11 xrandr multi-monitor

我总共有四台显示器。一个(1680x1050)连接到集成的Intel显示适配器,三个(1440x900和两个1920x1080)连接到专用的ATI显示适配器。对于某些 XRandR 配置,某些显示器的显示区域被裁剪,因此例如屏幕的下部不可用。

我想使用这样的配置:

xrandr \
    --output VGA-1 --mode 1440x900 --pos 780x1080 --rotate left \
    --output HDMI2 --mode 1680x1050 --pos 0x30 --rotate normal \
    --output HDMI-3 --mode 1920x1080 --pos 1680x1080 --rotate normal \
    --output DVI-0 --mode 1920x1080 --pos 1680x0 --rotate normal
Run Code Online (Sandbox Code Playgroud)

但是左下角屏幕的下半部分(右下角屏幕的下边缘以下)被截断了:

失败

另一方面,此配置有效:

xrandr \
    --output VGA-1 --mode 1440x900 --pos 780x1050 --rotate left \
    --output HDMI2 --mode 1680x1050 --pos 0x0 --rotate normal \
    --output HDMI-3 --mode 1920x1080 --pos 1680x1080 --rotate normal \
    --output DVI-0 --mode 1920x1080 --pos 1680x0 --rotate normal 
Run Code Online (Sandbox Code Playgroud)

,如下图所示:

成功 1

此配置也有效:

xrandr \
    --output VGA-1 --mode 1440x900 --pos 780x0 --rotate left \
    --output HDMI2 --mode 1680x1050 --pos 0x1440 --rotate normal \
    --output HDMI-3 --mode 1920x1080 --pos 1680x1440 --rotate normal \
    --output DVI-0 --mode 1920x1080 --pos 1680x360 --rotate normal 
Run Code Online (Sandbox Code Playgroud)

,如下图所示:

成功2

此外,以下配置有效

xrandr \
    --output VGA-1 --mode 1440x900 --pos 780x1080 --rotate left \
    --output HDMI2 --mode 1680x1050 --pos 0x30 --rotate normal \
    --output HDMI-3 --mode 1920x1080 --pos 1680x1440 --rotate normal \
    --output DVI-0 --mode 1920x1080 --pos 1680x0 --rotate normal
Run Code Online (Sandbox Code Playgroud)

如图所示:

成功 3

更新:

奇怪的是,我设法通过命令序列获得了想要的布局:

xrandr \
    --output VGA-1 --mode 1440x900 --pos 780x1080 --rotate left \
    --output HDMI2 --mode 1680x1050 --pos 0x30 --rotate normal \
    --output HDMI-3 --mode 1920x1080 --pos 1680x1440 --rotate normal \
    --output DVI-0 --mode 1920x1080 --pos 1680x0 --rotate normal

xrandr \
    --output HDMI2 --mode 1680x1050 --pos 0x30 --rotate normal \
    --output DVI-0 --mode 1920x1080 --pos 1680x0 --rotate normal \
    --output VGA-1 --mode 1440x900 --pos 780x1080 --rotate left \
    --output HDMI-3 --mode 1920x1080 --pos 1680x1080 --rotate normal \
        --primary
Run Code Online (Sandbox Code Playgroud)

这样它就可以在新启动的 Xorg 实例上运行,但我不知道它为什么起作用。此外,该解决方案似乎有点难看。有人可以就这个问题给我启发吗?

我的操作系统是 Arch Linux,窗口管理器是 i3,XRandR 的版本是 1.4.2。Xorg 配置文件只有 InputClass 和 Files 部分。

Rob*_*mer 0

是的,我可以完全向您介绍这一点和其他方面:

您的 X11 屏幕(一个大矩形)太小了。通常情况下xrandr,它会自动调整大小并包含所有监视器,但似乎会在您的系统上遇到错误。

屏幕截图中设置的图形表示也揭示了这个问题(VGA-1 后面的矩形被切断)。显示 X11 屏幕外部区域的监视器在这些区域中显示垃圾(或没有任何内容)。

使用开关手动调整其大小--fb。你的总宽度似乎是HDMI2 + DVI-0,即3600宽,总高度通过DVI-0拉伸到最大并旋转VGA-1,即1080 + 1440 = 2520。

xrandr --fb 3600x2520
Run Code Online (Sandbox Code Playgroud)