在 Windows 11 WSLg Ubuntu 发行版中启动 xfce4 或其他桌面

在 Windows 11 WSLg Ubuntu 发行版中启动 xfce4 或其他桌面

我正在使用 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-appfinderthunar文件管理器和终端仿真器)。

答案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最后一个客户端关闭时关闭的选项。

有时候我可能会在一个单独的问题中问这个问题。

相关内容