我在 VMWare 上的 Arch Linux 上使用 Gnome。
当我进入设置窗口时,我找不到我的分辨率(1920x1080)。
我最近正在使用 LightDM,并添加了一个包含/etc/X11/xorg.conf.d
我的分辨率的条目,但现在我使用 GDM 而不是 LightDM,而且似乎我的配置没有任何改变,因为 GDM 使用的是 Wayland(如果我错了,请纠正我)。
我找不到任何方法来做X11
与 Wayland 相同的事情。
所以我的问题是我们如何在 Wayland 中手动添加分辨率?
答案1
总结——在 Gnome 上,您可以设置内核启动参数来手动覆盖显示器的分辨率。如果您使用的是 Weston 实现(Gnome 显然不是),您可以在 ~/.config/weston.ini 中配置不同的分辨率
我为此苦苦挣扎了很长时间,最后找到了一个折衷方案,目前效果还不错。不过,我希望有更好的方法,如果有的话请告诉我。
与 Weston 合作(未经测试)
起初我以为 Gnome 使用 Weston 作为其 Wayland 层,但显然它不是那样工作的。但是,如果您使用 Weston,则可以在以下位置配置外部显示器的分辨率~/.config/weston.ini
:
[output]
name=VGA1
mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
输出名称应该是显示器的名称。在 Arch 上,您可以运行此命令来找出连接了哪些显示器:
for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done
要获取模式行的正确值,您可以运行cvt 1920 1080
,或者使用您需要的任何分辨率。更多信息请见此处:https://wiki.archlinux.org/index.php/Wayland#Configuration
使用 Gnome
看来 Gnome 还没有办法配置显示分辨率(至少目前还没有)。所以我找到了错误报告引用这个内核启动参数您可以使用它来覆盖显示器的分辨率。阅读链接的文档以了解完整详细信息,但在我的系统上,我需要将显示器“DP-1”配置为 1920x1080,频率为 60Hz,因此我将以下行添加到我的启动参数中:
video=DP-1:1920x1080@60
我正在使用 systemd-boot,因此我将其添加到我的options
行中/boot/loader/entries/arch.conf
。如果您使用 GRUB 或其他任何东西,则添加此启动参数的步骤将有所不同。
我实际上不确定如果我使用此选项集启动,然后插入需要不同分辨率的显示器会发生什么。这个启动参数会覆盖那个吗?或者这是自动检测失败时的后备方案?我不知道。因为我不确定,所以我添加了第二个省略此参数的启动条目。所以有时我可能需要重新启动才能在外部显示器上获得正确的分辨率。但除此之外,它工作正常。
答案2
此答案重复了上述已接受的答案,重点关注 Gnome,并解释了如何查找设备名称。我试图在 Debian GNU/Linux 10 (buster) 下使用 Gnome 桌面将第二个屏幕连接到我的笔记本电脑。该屏幕的推荐分辨率为1920x1200。问题是分辨率较低,并且设置菜单中只有 2 个选项可用:
查找设备名称
可以/sys/class/drm/
在模式文件中看到设备可用的分辨率:
$ cat /sys/class/drm/card0-DP-2/modes
1024x768
800x600
800x600
848x480
640x480
$ cat /sys/class/drm/card0-eDP-1/modes
1920x1080
1920x1080
就我而言,所讨论的屏幕的名称是DP-2
。
在启动参数中输入设备名称
在 Ask Ubuntu 上,这个答案解释如何向内核启动参数添加新的分辨率。
sudo vim /etc/default/grub
然后编辑此行
GRUB_CMDLINE_LINUX_DEFAULT="quiet video=DP-2:1920x1200@60"
然后更新 grub:
sudo update-grub
重启后,新的分辨率可用:
答案3
在我的情况下,使用 Paul Rougieux 建议的方法成功了。但是,我无法使用我首先尝试的 60 hz 使其工作,并且没有显示任何错误。偶然我尝试了 30 和 45,并且成功了。