首页>教程>FreeBSD 教程> 使用 Wayland >FreeBSD Xwayland 兼容层配置

FreeBSD Xwayland 兼容层配置

Xwayland 是 Wayland 环境下的 X11 的兼容层,主要的作用是在 Wayland 环境下运行未适配 Wayland 的原生 X11 应用。

在 FreeBSD 中,安装 wayland 软件包时会自动安装 Xwayland,如果在你的系统中未安装 Xwayland,使用如下命令安装:

sudo pkg install xwayland

注:建议安装开发版本的 Xwayland,它具有更好的兼容性。

启用 Xwayland

在不同的 Wayland 合成器中,启动 Xwayland 的方法各不相同,如下给出常用合成器中如何启动 Xwayland。

Wayfire 合成器启用 Xwayland

在 Wayfire 合成器的 ~/.config/wayfire/wayfire.ini 配置文件中添加以下配置启用 Xwayland:

xwayland = true

Sway 合成器启用 Xwayland

在 Sway 合成器中默认会启用 Xwayland,建议在 ~/.config/sway/config 配置文件中添加如下代码,确保会启用 Xwayland:

xwayland enable

Hikari 合成器启用 Xwayland

在 Hikari 合成器中默认内置了对于 Xwayland 支持,因此无需额外的配置,就自动启用了 Xwayland。

如果你想要在 Hikari 中禁用 Xwayland,需要先卸载 Hikari,然后从 Ports 集中重新配置 Hikari,取消 Xwayland 选项后,再安装 Hikari。

验证 Xwayland

1)如果想要验证 Xwayland 是否正常运行,可以在启动合成器后,在终端内执行如下代码:

env | grep DISPLAY

如果 Xwayland 已经正常启动,会输出类似如下的内容:

WAYLAND_DISPLAY=wayland-1
DISPLAY=:0

2)可安装 x11/eyes 软件包进行验证:可以启动 xeyes 程序,入宫眼球可以跟随着鼠标移动,则说明 Xwayland 兼容层已经正常启动。

解决无法启动 X11 应用

如果执行 env | grep DISPLAY 仅输出 DISPLAY=wayland-1,且 X11 的原生应用无法启动,可按以下步骤排查文件:

1)检查 X11 套接字是否存在:

sockstat | grep x11

正常情况下会显示 Xwayland 进程对应的 /tmp/.X11-unix/X0 套接字。

如果没有输出套接字,说明 X11 没有正常启动。

2)手动指定 DISPLAY 环境变量:

export DISPLAY=:0

3)重新启动 X11 应用。

安全注意事项

Wayland 的原生架构不包含网络监听组件,因此具有较高的安全性。但是在启用了 Xwayland 之后,就会启用 X11 的网络监听特性,如果想要提高系统的安全性,需要添加防火墙配置。