难以设置两个分辨率和比例不同的显示器

Cel*_*dor 5 xrandr multiple-monitors

我有带有标准 Gnome 的 Ubuntu 18.04 LTS,带有两个显示器,UHD 和 HD。左边的显示器是主要的,需要放大它的桌面 - 1.25 倍是完美的。我不能为此使用 GUI,因为唯一的选项是 100%、200% 等。我尝试运行xrandr但有很多问题。

这是xrandr --current任何更改之前的输出:

HDMI-0 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  59.94    50.00  
   ...
HDMI-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 697mm x 392mm
   3840x2160     60.00*+  59.94    50.00    30.00    29.97    25.00    23.98  
   2560x1440     59.95  
   1920x1080     60.00    59.94    50.00    29.97    23.98  
   ...
Run Code Online (Sandbox Code Playgroud)

xrandr --output HDMI-1 --scale 0.8x0.8按预期缩放主屏幕,但当我将其从一个屏幕移动到另一个屏幕时,桌面和指针之间似乎存在“间隙”。我的理想配置是主显示器和辅助显示器在底部对齐。

当我运行以下命令时:

xrandr --output HDMI-1 --mode 3840x2160 --scale 0.8x0.8 --pos 3072x0 --output HDMI-0 --mode 1920x1080 --scale 1x1 --pos 0x0
Run Code Online (Sandbox Code Playgroud)

屏幕更糟,完全拧紧,彼此分开,并且对齐错误。这是来自的输出xrandr --current

HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  59.94    50.00  
    ...
HDMI-1 connected primary 3072x1728+3840+0 (normal left inverted right x axis y axis) 697mm x 392mm
   3840x2160     60.00*+  59.94    50.00    30.00    29.97    25.00    23.98  
   2560x1440     59.95  
   1920x1080     60.00    59.94    50.00    29.97    23.98
    ...
Run Code Online (Sandbox Code Playgroud)

我不认为我了解参数。
有人可以帮忙吗?


编辑1

我浏览的网站主要是“Ask Ubuntu”和“Archlinux”。我学到了一些东西,但找不到我的问题的答案。我以某种方式设法运行以下命令:

xrandr --output HDMI-1 --fb 4992x1728 --mode 3840x2160 --scale 0.8x0.8 --pos 0x0 --primary \
       --output HDMI-0 --mode 1920x1080 --scale 1x1 --pos 3072x0`
Run Code Online (Sandbox Code Playgroud)

并根据需要配置显示器。

棘手的是--scale 0.8x0.8。我阅读了手册xrandr并意识到还有其他事情需要考虑:

  • 我所指的“屏幕”,xrandr手册中使用的名称,是一个大桌面,而监视器是我们围绕它配置的视口。
  • --scale XxY缩放或缩小设备上的桌面。发生这种情况时,有效分辨率会随着桌面可见部分的变大或变小而变化(见图);重要的是,我定义其它参数,如当不得不用这种新的层面工作--fb XxY--pos
  • --fb XxY是定义帧缓冲区的最大尺寸。在计算此参数的数字时,应考虑所有比例。毕竟,尺寸加起来应该是最大 X 和 Y。在我的例子中,两个相邻的显示器加起来是 4992x1728。
  • --pos XxY帧缓冲区内的位置监视器。主显示器的位置为0x0,而副显示器的位置为3072,即缩放后第一显示器的尺寸。如果我使用原始的 3840,则在显示器之间移动时指针会消失,因为会有间隙(请参见下方的屏幕截图)。作为旁注,如果使用尺寸 3840,则Xat--fb XxY也需要更改为 5760。

在下图中,主显示器上的一部分桌面由于缩放而隐藏。在 GUI 设置中,两个显示器重叠,但这些设置使事情按我的预期工作。

双显示器配置

为了进行最终测试并检查是否一切正常,我制作了一个屏幕截图,看起来显示器很好地粘在一起。

正确截图

参数错误的截图--fb XxY

在此处输入图片说明


编辑2。

重要。之前提供的命令:

xrandr --output HDMI-1 --fb 4992x1728 --mode 3840x2160 --scale 0.8x0.8 --pos 0x0 --primary \
       --output HDMI-0 --mode 1920x1080 --scale 1x1 --pos 3072x0`
Run Code Online (Sandbox Code Playgroud)

仅当我注销然后登录然后在终端中手动输入时才有效。如果我尝试将命令添加到.xprofile,结果会大不相同。有时,主监视器根本没有缩放,或者当指针移动到屏幕边缘时会出现一些奇怪的行为,例如屏幕流动。如果发生这种情况,然后我尝试在不重新启动配置文件的情况下再次运行相同的命令,这会变得非常奇怪。我只需要重新启动/重新登录并手动运行此命令。

任何设法达到这一点的人:),谢谢。也许有人知道如何解决与命令相关的最后一个问题,这意味着它可以在我每次登录帐户时执行。

谢谢。