运行具有不同 DPI 的多个显示器

运行具有不同 DPI 的多个显示器

我仔细查看了一下,发现 AskUbuntu 社区以前没有解决过此类问题。我的问题很简单,我相信很多 Ubuntu 用户都遇到过这种情况:

  • 简单地说,Ubuntu 无法运行具有不同分辨率、尺寸和 dpi 的多个显示器。

拥有相同尺寸的全高清显示器可以完美运行,但我有一台配备 4K 显示屏的笔记本电脑和一台分辨率为 2560x1080(21:9)的显示器,我无法使用第二台显示器,因为所有内容都经过了缩放。以下是我的设置的一些屏幕截图(我使用的是 Ubuntu 20.04.1 LTS):

在此处输入图片描述

在此处输入图片描述

启用“分数缩放”无法按预期工作 - 第二台显示器(2560x1080)上的缩放有点模糊,我的电脑出现延迟,鼠标闪烁等等。仅供参考,我有 i7 9750H、16GB 内存和专用 gtx 1650 gpu,但似乎只要我启用“分数缩放”,电脑就会开始延迟。

我找到了一篇可能对我有帮助的文章:https://techknowfile.dev/using-a-hidpi-monitor-with-a-low-resolution-external-monitor-ubuntu-i3/但是因为我以前玩过xrandr并且把东西弄得很乱,没有理解它们,所以我决定在这里寻求帮助。

如果您能帮助我解决这个问题,我将不胜感激。这应该也能帮助到许多其他遇到类似问题的用户。

答案1

首先我要说的是,我不是这方面的专家,欢迎任何人提供见解或纠正...

我能够在一定程度上复制该场景。我有一台笔记本电脑-->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 的犹豫……您可以做几件事……

  1. 首先获取当前设置并将它们放入命令行或脚本中,然后使用启动器调用它。
    xrandr --current将显示您当前的配置。
    您可以输入xrandr output eDP-1-1 --auto --verbose --output DP-1-3 --auto --right-of EDP-1-1并执行它。什么都不会发生,这是您当前的配置……但是一旦您开始测试,如果您最终搞砸了显示,您可以随时“向上箭头”到此命令并返回到此配置。(不久前,当我遇到类似的问题时,出于懒惰,我在面板上制作了一个启动器并将此命令放入其中……所以我只需登录并点击启动器并修复我的屏幕即可)
  2. 如果您发现屏幕爆炸,无法移动鼠标或返回终端,则请按 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并将其替换为--mode ####x####(可用的分辨率)...但如果有多个相同的分辨率(即1080pvs1080i),您可能需要使用它已分配给它的寄存器,例如--mode 0x254(请注意这些可能不是持久的)....请参阅您的xrandr --verbose输出。

再次强调,我不是这方面的专家,但你可以用这些数字进行实验,就像我找到一个可行的集合之前做的那样。当我添加 2x2 比例时,平移似乎是关键。

我读到过,NVIDIA 卡的缩放功能并不总是能很好地工作。

答案2

我也遇到了这个问题,并在这里找到了解决办法: https://news.itsfoss.com/ubuntu-21-04-multi-monitor-support/

即使不改变缩放值,激活分数缩放也可以使其更好地工作。

我尝试了一下,关闭并再次打开会话后,它成功了。

答案3

您可能能够调整其中一台显示器的 DPI 大小,以便它正常工作。尝试单击“分辨率”下拉框,看看它是否为您提供了允许您将 DPI 调整为相同数字的选项。

答案4

在 Wayland 上开箱即用

但此功能在 Xorg 中不可用

您需要在 Ubuntu 登录屏幕上注销并切换到运行 Wayland 会话。

在此处输入图片描述

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

不幸的是,并非所有应用程序都是 Wayland 原生的。尚未移植的应用程序将无法在不同的显示器上调整大小。

所有 gnome 组件(Ubuntu 以此为基础构建 unity)如计算器、文件等均可立即使用。Ubuntu 中的 Firefox 需要设置 MOZ_ENABLE_WAYLAND=1 才能运行。

Wayland 也不适用于专有的 NVIDIA,因为它是针对 Xorg 的特定黑客程序,所以您需要切换到 Nouveau 驱动程序或获取受支持的显卡。

相关内容