Xorg、Nvidia、Wayland 的多显示器问题

Xorg、Nvidia、Wayland 的多显示器问题

编辑:在 FreeNode 上的 Linux IRC 频道上询问后,我发现 X11 不支持每显示器缩放。我的 4k 嵌入式显示器的缩放比例为 200%,我的外部 1080p 显示器的缩放比例也为 200%。有人建议我切换到 GNOME,因为 Wayland 上的 GNOME 支持按显示器缩放。不幸的是,当我在登录时选择 GNOME 时,我的系统似乎仍然默认为 X11。显然应该有两个 GNOME 选项,一个是“默认”GNOME,另一个是“Xorg 上的 GNOME”。我没有看到这一点,我只有“默认”选项。

我看到的绝大多数搜索结果都是针对那些试图禁用 Wayland 并访问 Xorg 的人。我安装了 GNOME 组时安装的 Wayland 软件包:dnf group install "GNOME Desktop Environment"

问题:

  1. 如何使 Wayland 成为默认窗口系统?

原帖如下

我在配备 Nvidia GTX 1050 Mobile dGPU 的笔记本电脑上运行 Fedora 30。我有一个带有 iGPU 的 Intel i7-7700HQ CPU。我用肉桂DE。

我最近安装并运行了 Nvidia 驱动程序,并且可以通过 HDMI 端口让第二台显示器工作,不幸的是,该显示器的显示分辨率约为 980x540,而显示器的分辨率为 1920x1080。

xrandr -q输出显示外部显示器应该以 1920x1080 显示:

Screen 0: minimum 8 x 8, current 5760 x 2160, maximum 32767 x 32767
HDMI-0 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 476mm x 268mm
  1920x1080     60.00*+
  <other resolutions and refresh rates>
eDP-1-1 connected primary 3840x2160+0+0(normal left inverted right x axis y axis) 345mm x 194mm
   3840x2160     60.02*+  60.00    60.01   59.98    40.05    59.97
  <other resolutions and refresh rates>

我尝试使用GUI和内置显示管理 GUI创建自己的xorg.conf文件。我在这里阅读了几篇文章,Ubuntu 指南、Arch 指南和 Debian 指南。最多我可以让外部显示器在笔记本电脑盖子关闭时正确显示,或者使用- Produced ,但是当发生这种情况时,嵌入式显示器根本不会出现在输出中。生成一个文件,但抱怨Xorg -configurenvidia-xconfignvidia-settingsnvidia-xconfigxorg.confxrandr -qXorg -configurexorg.confNumber of created screens does not match number of detected devices. Configuration failed.

我有一些生成的尝试xorg.conf文件,以及我用生成的文件和我的尝试编写或组成的文件。我不知道如何在不制作巨大文本墙的情况下在这里显示所有内容......

问题:

  1. 如何使外接显示器以正确的分辨率和刷新率显示 - 1920x1080 60Hz
  2. 我在与朋友交谈时听说 Xorg 在实现上基本上是垃圾,但在概念上很漂亮。一位朋友特别谈到 X 服务器的其他客户端有可能“看到”其他客户端的显示,基本上数据能够泄漏。这是真的;数据泄露以及它是 X 标准的垃圾实现吗?
  3. 是否有其他我可以/应该使用的窗口管理器比 X 更容易使用或“更好”?我不知道如何更好地定义,因为我是处理 X 的新手。或者是否有我可以使用的 X 标准的“更好”实现。

答案1

X11 不支持每个显示器缩放。这意味着无论设置什么缩放比例都会应用于从 GPU 到每个监视器的输出。根据##linuxfreenode 上 IRC 上的人的说法,Wayland + EGLStreams + Nvidia 是一团糟。我不确定这是否是事实。

将适当缩放的输出输出到我的外部非 HiDPI 显示器的修复方法如下:

xrandr --output eDP-1-1 --auto --output HDMI-0 --auto --scale 2x2 --right-of eDP-1-1

重要的是--scaleHDMI 输出。看起来这会在 GPU 到达 HDMI 输出之前缩小其输出。联机帮助页明确指出:

--scale XxY
更改输出图片的尺寸。大于 1 的值将导致压缩屏幕(屏幕尺寸大于输出模式的尺寸),小于 1 的值导致输出放大。

因此,似乎存在一些按监视器缩放的概念。当您将缩放设置为 200% 以适应 HiDPI 输出时,所有内容看起来都会正确缩放。我不确定,但这可能会导致外部显示器上的颜色看起来很糟糕,或者我的显示器可能需要针对 Linux 进行一些校准,因为它在 Windows 上很好。

我正在尝试其他方法来做到这一点,但这是最快的。我很确定我在 Arch 论坛帖子或 wiki 上找到了它,但我不再有链接了。

相关内容