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 的网络监听特性,如果想要提高系统的安全性,需要添加防火墙配置。