使用不同DPI的多个显示器

我仔细查看了一下,发现AskUbuntu社区以前没有解决过这种问题。我的问题非常简单,我相信很多Ubuntu用户都有这个问题:
简单来说,Ubuntu无法运行具有不同分辨率、大小和dpi的多个监视器。
拥有相同尺寸的全高清显示器可以完美地工作,但是我有一台笔记本电脑,它有4K显示屏和一个分辨率为2560x1080(21:9)的显示器,我无法使用第二个显示器,因为一切都被缩放和放大了。以下是我的设置截图(我正在使用Ubuntu 20.04.1 LTS):

enter image description here

enter image description here

启用“分数缩放”功能并没有按预期工作 - 第二个显示器(2560x1080)的缩放有点模糊,我的电脑卡顿,鼠标闪烁等等。只是提供信息,我拥有i7 9750H处理器,16GB内存和专用的GTX 1650显卡,但似乎一旦启用“分数缩放”,电脑就开始卡顿。
我找到了一篇可能对我有帮助的文章:https://techknowfile.dev/using-a-hidpi-monitor-with-a-low-resolution-external-monitor-ubuntu-i3/,但因为之前曾经使用过xrandr并且搞得一团糟,完全不理解它们,所以我决定在这里寻求帮助。
如果您能帮助我解决这个问题,我将非常感激。这也将帮助其他遇到类似问题的用户。

你不确定是否要使用xrandr...明白了...但是在两个显示器都连接的情况下,你能展示一下xrandr --verbose的输出吗? - WU-TANG
这是一个包含我两个1080p分辨率屏幕截图的Pastebin链接:https://pastebin.com/raw/HZcEF66Y。请查阅。 - Кристиян Кацаров
5个回答

首先,我要说的是,我对这个并不是专家,任何其他人都可以提供见解或纠正...

我能够在某种程度上复制这个情景。我有一台笔记本电脑 -> 1920x1080和一台电视 -> 1280x720

我的第一个"答案"是,我能够将电视推到1920x1080i而不需要太多额外的技巧,所以你试过将你的34英寸LG电视调整到不同的分辨率吗?

...但是我使用的是"自动"选择的分辨率,这对我有效:

xrandr --output eDP --auto --verbose --output HDMI-A-0 --auto --scale 2x2 --panning 2560x1440+1920+0 --right-of eDP

这是我需要一些输入的部分... 在调整画面时,我将我的电视H分辨率减去笔记本电脑的H分辨率...并将其加到笔记本电脑的分辨率中:
1920-1280--> 640 + 1920 = 2560 ....然后用V分辨率做同样的操作 1080-720--> 360 + 180 = 1440

这是我能让缩放在电视上正常工作的唯一方法,否则它将被限制在屏幕的一小部分,光标无法访问屏幕的其他部分。
我相信有更优雅的方法来解决这个问题,而且我甚至认为这种方法并不完全正确,因为当在屏幕之间切换时,电视底部与笔记本电脑屏幕底部并不完全对齐。精确度需要更多的实验。

我在电视上观看了几分钟的变形金刚动作场景(在YouTube上),以查看它是否正常运行...不幸的是,我没有意识到我的笔记本电脑没有插电源,所以它关机了,我只测试了大约3-4分钟...

针对您的情况:
关于您不愿使用xrandr的犹豫...有几件事情可以做...

首先,获取当前的设置并将其放入命令行或脚本中,然后使用启动器调用它。
xrandr --current 将显示您当前的配置。
您可以键入 xrandr output eDP-1-1 --auto --verbose --output DP-1-3 --auto --right-of EDP-1-1 并执行它。此时不会发生任何事情,这是您当前的配置... 但一旦开始测试,如果您搞砸了显示屏,您可以始终使用 "上箭头" 返回到这个命令并恢复到这个配置。(前段时间,当我遇到类似问题时,出于懒惰,我在面板上创建了一个启动器,并将该命令放入其中... 这样我只需登录并点击启动器即可修复我的屏幕)
  • 如果您发现屏幕爆炸并且无法移动鼠标或返回终端,则按下 CTRL+ALT+F4... 登录... 使用 sudo init 3 杀死图形登录... 然后使用 sudo init 5 启动它。我相信它会带您回到图形登录界面,如果不行,那么要么按下 CTRL+ALT+F1,要么按下 CTRL+ALT+F7。重新登录并继续测试。我还没有能够通过 xrandr 造成任何永久性损坏...
    你可能想检查一下我的数学,但我认为你的命令应该是这样的:
    xrandr --output eDP-1-1 --auto --verbose --output DP-1-3 --auto --scale 2x2 --panning 5120x3240+3840+0 --right-of EDP-1-1
    如果你想使用特定的分辨率而不是 "auto",你可以删除 --auto,并用可用的分辨率替换它,例如 --mode ####x#### (一个可用的分辨率)...但如果有多个相同的分辨率(如1080pvs1080i),你可能希望使用它所分配的注册,比如 --mode 0x254 (请注意,这些可能不是持久的)...请参考你的 xrandr --verbose 输出。
    再次说明,我对此并不是专家,但你可以像我一样尝试不同的数字,直到找到适合的设置。在我添加2x2的比例时,似乎 panning 是关键。
    我读过在 NVIDIA 显卡上缩放不总是表现良好的情况。

  • 上次我尝试使用xrandr时,我几乎无法恢复默认设置,有没有关于如何使用这个工具的手册或教程?我觉得这可能会对我有帮助,否则我就继续使用两个屏幕的1080p分辨率。 - Кристиян Кацаров
    每个命令都有一个手册页man xrandr。我向你展示了如何进入默认设置(顺便说一下,你没有使用它)...即使如此,我还是向你展示了如何通过手动输入模式返回到1080p。或者只需重新启动...xrandr本身不是持久的。似乎你没有仔细阅读答案???我要提醒你,如果你只是匆匆看一眼然后输入你在蓝色高亮处看到的第一件事,那将不会愉快。我在那里解释/研究了我所做的事情,但这并不适用于你的机器。 - WU-TANG
    你应该得到奖赏,因为你给出了最详细的答案,感谢你的帮助。我很快会尝试一下! - Кристиян Кацаров
    谢谢,但我真的建议你先自己检查一下……无法预测什么会导致某人的系统与其他系统不同。如果我的答案只适用于我的机器,或者我误解了你的问题,那对你或将来看到这个问题的其他人都没有帮助。等你找到答案后再回来告诉我。 - WU-TANG


    你是什么意思说“一切”都被缩放和放大了?你怎么知道一切都被缩放和放大了?当你有一个小屏幕和高分辨率以及一个大屏幕和低分辨率时,东西在大屏幕上只会变得更大而已。

    好吧,我刚刚比较了这两个屏幕。我让笔记本电脑在没有外接显示器的情况下运行4K,然后关闭了笔记本电脑的盖子,这看起来还不错。直到我同时启用了我的4K笔记本电脑屏幕和1080p的显示器。外接显示器的缩放比例为200%,因为主屏幕的原因,所有内容都被放大了。 - Кристиян Кацаров
    不,它们不会。只要显示器正确配置,就不会出现这种情况。这就是为什么有这个问题。当然,这个问题实际上并没有提到DPI,这是在缩放中需要考虑的另一个因素。 - RichieHH

    在Wayland上即插即用

    但这个功能在Xorg中不可用

    您需要注销并切换到在Ubuntu登录界面运行Wayland会话。

    enter image description here

    登录后,您会发现应用程序在从一个显示器完全移动到另一个显示器时会自动调整大小。

    不幸的是,并非所有应用程序都支持Wayland。 尚未移植的应用程序在不同的监视器上无法调整大小。

    所有基于Ubuntu Unity的GNOME组件(如计算器、文件等)都可以直接使用。但是,在Ubuntu中,Firefox需要设置MOZ_ENABLE_WAYLAND=1才能正常工作。

    由于Wayland是专门为Xorg设计的黑客技术,因此它与专有的NVIDIA驱动程序不兼容。所以您需要切换到Nouveau驱动程序或者购买一张支持的显卡。


    说实话,虽然功能可能存在,但支持非常差,很少有应用程序能正常运行(加上Nvidia引起的问题),所以它实际上并不能直接使用。还不适合日常使用。 - Кристиян Кацаров
    Wayland在过去的4年里一直是Fedora的默认选项,所以我可以说这项技术已经准备就绪且稳定可靠,但当然应用开发者需要为其构建支持。 - tomodachi
    我刚在Ubuntu 20.04.3 LTS上尝试了Wayland,虽然显示设置现在允许不同的缩放比例,但仍然无法对不同的监视器进行缩放(将监视器A和B都设置为100%+将监视器B缩放到200%=两个监视器都缩放到200%,而设置声称监视器A仍然是100%)。 - jpb

    您可以尝试调整其中一个显示器的 DPI 以使其正常工作。尝试单击“分辨率”下拉框,查看是否有选项可让您将 DPI 转换为相同数字。

    1如您在此处可以看到-https://i.ibb.co/1MRw0Kp/image.png-没有 DPI 设置。DPI 只能在比例设置中进行调整。 - Кристиян Кацаров
    DPI可以在Xorg中一次性设置所有显示器。而且你可以在xrandr命令行上完成这个操作。 - RichieHH