Arch Linux 下全面使用 Wayland 的配置指南
我们能否在 Arch Linux 中通过主流的桌面环境或窗口管理器来全面运行 Wayland？一起来探索答案。
Wayland Arch Linux
我们能否在 Arch Linux 中通过主流的桌面环境或窗口管理器来全面运行 Wayland？一起来探索答案。
![](/data/attachment/album/202309/08/090159qe0jkbtj5z55bbeq.jpg)



> 
> 我们能否在 Arch Linux 中通过主流的桌面环境或窗口管理器来全面运行 Wayland？一起来探索答案。
> 
> 
> 


Wayland 是一种针对 Linux 运行图形应用的高效、现代化的协议。相较之下，它在安全、稳定和图形性能方面相较老旧的 [X.Org](http://X.Org) 显示服务器表现更出色。


尽管 [X.Org](http://X.Org) 多年来一直是默认的显示服务器，但其年代漫长且复杂度高，导致了许多问题，包括安全漏洞和对新型硬件的兼容性问题。而 Wayland 提供了一个更简洁和安全的显示协议，用以解决这些问题。


虽然向 Wayland 转型已经有近十年的时间，但这是可以理解的。大型 Linux 发行版，例如 Ubuntu 和 Fedora，自 2021 年起就默认使用 Wayland，因为该协议现已逐渐稳定。


然而，对 Arch Linux 用户来说，使用 Wayland 进行自定义安装可能会比较复杂。在所有主流桌面环境中，只有 KDE Plasma 和 GNOME 有最新的 Wayland 支持。Xfce、LXQt 及其他桌面环境正在开发支持 Wayland 的功能，但现在还没有做好准备。


在窗口管理器方面，Sway 在 Arch Linux 中已经全面支持 Wayland。尽管如此，我还是希望能测试 Wayland 在 Arch 中的表现，并给你提供一个截至今日的状态报告。


让我们来尝试在 Arch Linux 中配置 KDE Plasma 和 GNOME 以全面支持 Wayland。


### Arch Linux 中的 Wayland 设置


在理想的情况下，你应已经安装了 [基础的 wayland 包](https://archlinux.org/packages/extra/x86_64/wayland/)。打开一个终端，并通过运行下列命令进行核实：



```
pacman -Qi wayland

```

如果你尚未安装，则可以使用以下命令进行安装：



```
sudo pacman -S --needed wayland

```

#### KDE Plasma 桌面环境


接下来的步骤设定的前提条件是你拥有一个没有安装任何桌面环境或窗口管理器的裸机 Arch Linux 环境。你可以通过使用 [高效的 archinstall 脚本](https://www.debugpoint.com/archinstall-guide/) 进行 Arch Linux 的裸机安装。


在 Arch Linux 中，为了设置标准的 KDE Plasma，我们需要对 Wayland 进行一些调整。因此，该过程中需要从 AUR 安装一些包进来，这就要求你已经 [设置了 Yay](https://www.debugpoint.com/install-yay-arch/) 或者其他的 AUR 辅助工具。


首先，利用以下命令从 AUR 安装一个定制的 sddm 显示管理器 Wayland 软件包。请注意，这个 `sddm` 包与 Arch Extra 仓库中的 `sddm` 包并不相同。根据 [ArchWiki](https://wiki.archlinux.org/title/wayland#Display_managers) 的指南，只有 GDM 和 `sddm-git` 在 Arch Linux 中提供了完善的 Wayland 支持。



```
yay -S sddm-git

```

安装完成后，执行下述命令来安装更多 Wayland 包。


* `xorg-xwayland`：使得 xclients 能在 Wayland 下运行
* `xorg-xlsclients`：列出正在一个显示端口上运行的客户端应用（可选）
* `qt5-wayland`：为 Wayland 提供的 Qt API
* `glfw-wayland`：供 Wayland 使用的 GUI 应用开发包



```
pacman -S --needed xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland

```

然后，执行以下命令以安装 Plasma 和与 Wayland 会话关联的应用。请保持以下的安装顺序。



```
pacman -S --needed plasma kde-applications

```


```
pacman -S --needed plasma-wayland-session

```

**注意**：如果你是英伟达用户，你可能需要考虑安装 `egl-wayland` 包，但需要说明的是，我没有尝试过此操作。


我们现在来安装 Firefox 和 Chromium，这样能够帮助我们测试 Wayland 是否正常运行。



```
pacman -S --needed firefox chromium

```

安装完成后，启动 sddm 显示管理器和 NetworkManager 服务。



```
sudo systemctl enable sddm
sudo systemctl enable NetworkManager

```

另外，sddm 显示管理器需要做一些额外设置。使用你喜欢的文本编辑器，打开 sddm 的配置文件，然后在 `[Theme]` 下面添加 `Current=breeze`。



```
sudo nano /usr/lib/sddm/sddm.conf.d/default.conf

```


```
[Theme]
# current theme name
Current=breeze

```

设置完成后，保存并关闭文件，然后进行重启。



```
reboot

```

重启后，在登录屏幕上，你应该可以看到 Wayland 的选项。选择并登录 KDE Plasma 的 Wayland 会话。


![Plasma Wayland 会话登录界面](/data/attachment/album/202309/08/090345nazzxq56qcah8u67.jpg)


你还能通过查看 `$XDG_SESSION_TYPE` 变量来 [核实你是否在运行 Wayland](https://www.debugpoint.com/check-wayland-or-xorg/)。


![Arch Linux 中运行的 KDE Plasma 与 Wayland](/data/attachment/album/202309/08/090356zab87wbkz8kzkcx4.jpg)


如果你希望强制让 Firefox 以 Wayland 运行，那么就在 `/etc/environment` 中添加以下行。



```
MOZ_ENABLE_WAYLAND=1

```

然后重新启动或执行下方的命令使其生效。



```
source /etc/environment

```

打开 Firefox，进入 `about:support` 页面来校验 “Window protocol” 的值。你也可以通过在终端中运行 `xlsclients` 来查看哪些外部应用正在运行在 Wayland 下。


![在 Arch 和 KDE Plasma 下 Firefox 使用的是 xwayland](/data/attachment/album/202309/08/090405l3vbbcdb2dddd10j.jpg)


至此，你已经完成了在 Arch Linux 中使用 Wayland 安装配置 KDE Plasma 的全部步骤。


#### Wayland KDE Plasma 在 Arch 中的性能表现


总体而言，Arch Linux 下的 KDE Plasma 配合 Wayland 运行得相当顺畅，未出现任何中断使用或重大问题的情形。截图和屏幕录制应用 Spectacle 功能一切正常。尽管如此，我在测试过程中还是注意到了几个小问题。


首先，在开启如 Dolphin 这类应用程序时，底部面板时不时会出现闪烁，这主要是在 VirtualBox 会话中观察到的。


其次，鼠标指针的变化行为有点奇怪。它无法适時地从指针状态切换到操作手柄状态（详见下图）。


![](/data/attachment/album/202309/08/090215gnfvaenqpesznvrq.gif)


最后，当从待机/屏幕关闭状态恢复在线时（在没有安装客户机插件的 VirtualBox 中），KWin 会崩溃。虽然这可能只是虚拟机特有的现象，但仍然需要进行硬重启才能返回到桌面。


在 Arch Linux 的 Wayland 会话闲置状态下，内存消耗大约为 2GB。


### GNOME


在 Arch Linux 中，GDM 显示管理器已经完全支持 Wayland。首先，我们通过下列命令安装 GDM：



```
pacman -S --needed gdm

```

安装完毕后，使用以下命令安装几个 Wayland 需要的包。


* `xorg-xwayland`：使得 xclients 能在 Wayland 下运行
* `xorg-xlsclients`：用于列出在显示器上运行的应用程序（可选）
* `glfw-wayland`：Wayland 的图形用户界面应用开发包



```
pacman -S --needed xorg-xwayland xorg-xlsclients glfw-wayland

```

接下来，你可以用下面的一系列命令来安装 GNOME 和一些与 Wayland 会话相关的应用。请确保按照下列给出的顺序来执行这些命令。



```
sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme

```

**注意**：如果你正在使用英伟达，你可能需要安装 `egl-wayland` 软件包，但我并未亲自试过此方法。


接下来，我们还要安装 Firefox 和 Chromium，这样你就能测试 Wayland 是否在 GNOME 中正常运行。



```
pacman -S --needed firefox chromium

```

一旦这项任务完成，就启动 GDM 显示管理器和 NetworkManager 服务。



```
sudo systemctl enable gdm
sudo systemctl enable NetworkManager

```

保存并关闭文件之后，进行重启。



```
reboot

```

在登录界面，你能看到 “GNOME (Wayland)” 选项。选择并登录到 GNOME 的 Wayland 会话中，以进入 Arch Linux。


![在 Arch Linux 中运行的带有 Wayland 的 GNOME](/data/attachment/album/202309/08/090416jdnkwnvfuks16n4c.jpg)


#### GNOME 的性能


如果将 GNOME 和 KDE Plasma 进行对比，你会发现 GNOME 在 Arch Linux 的 Wayland 下的表现更胜一筹。没有遇到重大问题或应用屏幕闪烁。这可能源于 GNOME 44 针对 Wayland 的最新改进已普及至 Arch Linux。


此外，Firefox 是在 GNOME 上直接在 Wayland 上运行，而不是使用 xwayland 包装器。


![在 GNOME 中的 Firefox 使用 Wayland](/data/attachment/album/202309/08/090422mnmyi9yiomigyr90.jpg)


### 解决常见 Wayland 问题


虽然 Wayland 提供了众多优点，但在使用过程中你可能会遇到一些挑战。以下列出了几个常见的问题以及可能的解决方案：


* **处理不兼容的应用程序**：部分较旧或不常用的应用可能还未完全支持 Wayland。你可以考虑寻找专为 Wayland 设计的替代应用，或利用 XWayland 作为兼容性层。
* **解决性能相关问题**：如果你在特定的应用程序中遇到性能问题，确保你已经安装了最新的图形驱动。另外，也可以查看是否有特定的合成器设置或适用于特定应用程序的优化措施。
* 在 [这个页面](https://wiki.archlinux.org/title/wayland#Troubleshooting) 中，也有**更多**疑难解答的建议。


### 结论


在 Arch Linux 中将 Wayland 设置为默认的显示服务器可以大大提升安全性、稳定性和图形性能。遵循本指南的安装和配置步骤，你能够从 Xorg 平稳过渡到 Wayland，享受一个更为现代高效的显示体验。


然而，对于 Arch Linux 加 Wayland 的组合来说，整个过程可能会显得稍微复杂一些，因为许多问题崩溃时都需要额外的注意。


这个指南并没包括在 Arch 使用 Wayland 游戏的测试，所以你可能需要在配置完成后自行试验。我希望这篇教程能帮助你在 Arch Linux 中配置 Wayland。


如果你有任何进展，欢迎在下面的评论框中告诉我。


*（题图：MJ/188e0c86-ed52-4185-b583-23814fb72ce7）*




---


via: <https://www.debugpoint.com/wayland-arch-linux/>


作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

