我正在使用 Windows 11 WSLg(使用来自 Microsoft Store 的 Windows Subsystem for Linux Preview 安装)和来自 Microsoft Store 的当前 WSL Ubuntu 发行版。
我如何启动xfce4
另一个 Ubuntu 桌面?
目前,apt install xfce4
后跟startxfce4
会产生错误cannot open display: wayland-0
+Failed to connect to session manager
和一些其他输出。
使用 Windows 10 WSL2,在 Windows 上安装并运行 VcXsrv 客户端后,我没有遇到任何启动问题xfce4
。据我所知,后者对于 Windows 11 WSLg 来说不是必需的。
我可以毫无问题地启动独立的 x-windows 应用程序(如xfce4-appfinder
、thunar
文件管理器和终端仿真器)。
答案1
我认为主要问题是 WSLg 已经在运行 Weston,即具有自己的窗口管理器的 Wayland 参考服务器。
如果您尝试运行以下命令,就会看到这一点xfwm4
:
xfwm4-Message: 02:10:49.361: Another Window Manager (Weston WM) is already running on screen :0.0
xfwm4-Message: 02:10:49.361: To replace the current window manager, try "--replace"
(xfwm4:267): xfwm4-WARNING **: 02:10:49.361: Could not find a screen to manage, exiting
尝试--replace
也无济于事,因为 Weston 实际上运行在不同的发行版(WSLg“系统发行版”)中,并且只是通过注入的套接字连接到您的实例/init
。
虽然我认为我仍然更喜欢这个xrdp
选项,但 Wayland 确实提供了自己的 X 服务器以实现向后兼容,因此至少不需要像 Windows 10 上那样的第三方基于 Windows 的 X 服务器(如 VcXsrv)。
通过 安装sudo apt install xwayland
。
到目前为止,我确信还有更好的方法,但以下是我目前想到的办法。创建以下脚本以启动 Xfce4:
#!/usr/bin/sh
Xwayland :1 &
xw_pid=$!
WAYLAND_DISPLAY= DISPLAY=:1 dbus-launch startxfce4
kill $xw_pid
当然,设置脚本可执行(+x
)。
您应该获得一个在 Xwayland 上运行的 Xfce4 桌面。
注意,WAYLAND_DISPLAY
需要取消设置,否则 Gtk 应用程序将要首先尝试使用 Wayland 合成器。
另请注意,Ubuntu 桌面是完全是另外一个故事因为它依赖于 Systemd。
附注:不过,由于我对 WSLg 上的 Wayland 也还不太熟悉,所以我还是想知道:
- Xwayland 支持吗
~/.Xsession
?(我无法让它工作) - 启动 Xwayland 时,还有其他方法可以启动会话管理器(或任何客户端)吗?肯定有,因为
Xwayland -help
显示了-terminate
最后一个客户端关闭时关闭的选项。
有时候我可能会在一个单独的问题中问这个问题。