使用 Vcxsrv 的 StartXCFE4 不起作用

使用 Vcxsrv 的 StartXCFE4 不起作用
  • WSL 版本:1.0.3.0
  • Ubuntu 版本:22.04.1 LTS

Vcxsrv 依然是黑色的。

我已将其添加export DISPLAY=:172.X.XXX.X:0.0到我的.bashrc文件中。

当我运行命令时sudo startxfce4,出现以下消息:

(xfwm4:4818): xfwm4-WARNING **: 15:06:25.234: Could not find a screen to manage, exiting

(xfsettingsd:4826): libupower-glib-WARNING **: 15:06:25.308: Couldn’t connect to proxy: Could not connect: No such file or directory
xfsettingsd: Another clipboard manager is already running.

(xfsettingsd:4826): xfsettingsd-WARNING **: 15:06:25.656: Failed to get the _NET_NUMBER_OF_DESKTOPS property.

答案1

需要解决的几个问题:

  • 首先,您尝试使用 运行startxfce4sudo这是一个问题,因为 (a) 您确实不想以 root 身份运行桌面,并且 (b)sudo默认情况下不会将环境变量从您的用户传递到会话sudo,因此没有DISPLAY设置。

  • 其次,即使你以普通用户身份运行,Xfce4 也会看到WAYLAND_DISPLAYWSLg 提供的变量,并会拒绝运行,因为 WSL 上的 Wayland 是由 Weston 提供的,而 Weston 提供了自己的窗口管理器(请参阅这个答案了解详情)。

我能够使用以下命令以全屏 VcXsrv 会话运行 Xfce4:

  • 使用“一个没有标题栏的窗口”、“不启动客户端”和“禁用访问控制”运行 Xlaunch。

  • 在 Ubuntu 中:

    export DISPLAY=$(hostname).local:0
    export WAYLAND_DISPLAY=
    startxfce4
    

    export DISPLAY我在那里使用的表格有效不管WSL 的 IP 地址、WSL2 网络交换机或 Windows 本身。但是,它确实要求您使用内置的 WSL2 解析器。

  • 这可能还需要防火墙规则。通常,Windows Defender 会生成一个对话框,要求您批准或拒绝连接第一次使用。如果您以前曾建立过连接,那么可能已为您创建了此规则。但是,如果您错过了对话框(有时会弹出在后面如果您在其他窗口上也看到了“拒绝”规则,则可能已实施该规则,您需要进行修复。

相关内容