将显示器边缘与不同的分辨率对齐

Mad*_*vad 6 multiple-monitors

我有三台不同分辨率的显示器,特别是在它们并排放置的高度维度上。我的主显示器在中间是 4K(2160 小时),两侧有两个较小的显示器:一侧是 1200 小时,另一侧是 768 小时。

问题是 4K 显示器既美观又紧凑,但其他显示器是更大的旧显示器,但它们各有其用途。1900x1200 显示器的物理尺寸与 4K 显示器相同,但 4K 的像素几乎是高度的两倍。

这意味着对于 4K 屏幕的一半,我的鼠标光标“撞击”边缘,我必须向上或向下移动才能进入较小的显示器。另一边的情况更糟。

鉴于主显示器和第二显示器的高度相同,我希望鼠标光标平移一些 Y 坐标,以便离开一台显示器的底部等于另一台显示器上的相同位置,返回时相同。

是否可以并排放置两种不同像素高度的显示器,但它们的底部和顶部在桌面上对齐?

从数学上讲,当鼠标从 1>2 移动时,Y 坐标将减半,因此它“看起来”在正确的位置,并在返回的途中再次加倍。

编辑:这是出现在我下面的系统上的情况。我可以使屏幕与顶部对齐(在屏幕底部进行“中断”),或者将它们移动到鼠标每次在顶部和底部都会捕捉到的中间(最不理想)。

阅读最近提出的解决方案,我广泛地使用了 GUI 设置,并且我所拥有的任何内容都无法让我实现“对齐”。

使用 scale 选项会影响所有显示器,并与我想要的相反。到 200%(如果应用于单个显示器,我可以处理),会将所有屏幕炸毁到 200%。如果我能炸毁侧面监视器,我会很高兴。是的,它们会是颗粒状和巨大的,但我会在那个屏幕上有适合那里显示的内容的特定内容。

我想被证明是错误的,但多年来我一直在寻找解决方案。我不相信这是可能的。

我刚刚在评论中提到我在另一个名为“协同作用的产品”中取得了类似的成果”。我已经很多年没有使用过它了,但它的用例特别适用于一起运行的计算机的虚拟化 KVM 网络。在协同系统中,您可以将一台显示器的出口和入口点与下一台对齐,无论如何高度不匹配。我不知道是否仍然如此,我已经十多年没有使用该产品(并且幸免于买断和收购),而且它的用法与我现在使用的完全不同。然后我使用了协同作用远程桌面一台计算机跨越 4 个网络,所有屏幕相互接触。这是一个甜蜜的解决方案。但是,主要区别在于应用程序始终仅限于自己的桌面。您不能拥有跨越远程桌面的应用程序。因此,鼠标移动要简单得多。 你可以看到并排的差异

Pod*_*sta 3

您可以使用 GUI(在 xubuntu 中,使用xfce4-display-settings,但我确信 gnome 有等效的)或使用 来调整屏幕的位置xrandr

这是您必须手动执行的操作,因为计算机无法知道两个显示器之间的相对物理位置。它们可能是顶部对齐的,一个可能是中间的,等等。只要你告诉计算机第二个在哪里,你就可以根据它们的物理位置正确对齐它们。通过一些实验,您可以获得效果很好的东西。

使用 GUI,就像拖放一样简单。如下图所示,右侧屏幕与另一个屏幕的左上角对齐。您只需单击它并拖动它,根据您的喜好向上或向下移动它。

在此输入图像描述

使用时xrandr,相关设置为--pos

   --pos xxy                                                 
          Position  the  output within the screen using pixel coordinates. In
          case reflection or rotation is applied, the translation is  applied
          after the effects.
Run Code Online (Sandbox Code Playgroud)

该位置0x0是所有屏幕的左上角。例如,假设您有两台显示器,一台主显示器位于左侧,分辨率为 1920x1080,另一台位于右侧,分辨率为 1280x960。如果它们的顶部像素物理对齐,您将需要使用类似于以下的命令:xrandr --output SCREENNAME --auto --pos 1920x0。这表明您希望它在 x 轴(水平)上移动 1920 个像素,并放置在 y 轴(垂直)上的像素 0 处。如果它是底部对齐的,您可以使用:xrandr --output SCREENNAME --auto --pos 1920x120,即 1080 减去 960。

一些可以帮助你想象它的东西。

(virtual screen coordinates)           The x margin is 3200 pixels
     0                                 The y margin is 1080 pixels
   0 A-----------------------          A position is 0x0
     |                      |          B position is 1920x120
     |                      |B---------------
     |                      |               |
     |         MAIN         |      SEC      |
     |                      |               |
     |       1920x1080      |    1280x960   |
     |                      |               |
1080 ----------------------------------------
Run Code Online (Sandbox Code Playgroud)

对于您的设置,您可能还想使用--scale,因为像素大小非常不同。你必须调整价值观才能得到你喜欢的东西,但这是一个很大的权衡。如果你保持合理的比例,你也许能得到一些好看的东西。

   --scale xxy
          Changes the dimensions of the output picture. Values superior to  1
          will  lead to a compressed screen (screen dimension bigger than the
          dimension of the output mode), and values below 1 leads to  a  zoom
          in on the output. This option is actually a shortcut version of the
          --transform option.

   --scale-from wxh
          Specifies the size in pixels of the area of the framebuffer  to  be
          displayed  on this output.  This option is actually a shortcut 
          version of the --transform option.
Run Code Online (Sandbox Code Playgroud)

记住这些信息,并了解使用的其他基础知识xrandr,例如每个屏幕的名称,选择其分辨率,刷新率,翻转或您想要在设置中使用的任何其他特殊设置,您可以轻松对齐所有屏幕您的显示器,以便它们的物理位置与虚拟位置相匹配。检查man xrandr是否有大量有用的命令。