GUI 应用程序在 Windows 11 的 WSL2 中不起作用

GUI 应用程序在 Windows 11 的 WSL2 中不起作用

启动带有 GUI 的应用程序时,没有错误消息,但没有显示窗口。我的显示变量设置为 192.168.128.1:0(不知道是否有帮助)。

在搭载 Ryzen 5 2500U 的 AMD 笔记本电脑上运行。

答案1

我暂时只做一个假设,但请使用我在评论中请求的附加详细信息来编辑您的问题,以便我们确保将来的其他用户可以更轻松地找到您的问题。

我的假设:

  • 你之前运行的是 Windows 10
  • 在某些时候,您要么在 Windows 10 中的 WSL 下使用 X 服务器(例如 VcXsrv 或 GWSL),要么尝试这样做。
  • 你已将 Windows 10 版本升级到 Windows 11
  • 您已wsl --update在 Windows 11 中运行更新您的 WSL 版本以包含 WSLg。
  • 您现在正尝试使用 Windows 11 中的 WSLg 功能来启动 GUI 应用程序。

$DISPLAY192.168.128.1:0这么想,因为$DISPLAY新安装的 Windows 11 Ubuntu 中的默认设置就是:0

尝试:

cd ~
grep -r --exclude-dir=* DISPLAY

如果您在启动配置文件中发现任何结果.bashrc,请编辑启动文件以删除您过去所做的任何自定义显示设置。

答案2

我正好有这个问题

~$ grep DISPLAY .bashrc
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2

这是‘Windows 上的 Ubuntu’,当我将机器升级到 Win11 时它就在我的机器上,随后我将其升级到 Jammy Jellyfish 22.04.03。

从 Windows 商店获取了 Ubuntu 22.04.02,并在升级到 Windows 11 后安装了它。它的 GUI 没有问题,其 DISPLAY 设置为“:0”

declare -x DISPLAY=:0

效果很好。所以这一切都如 @NotTheDr01ds 所说,但我可以断言问题出在 .bashrc 文件中,通过注释掉该行,问题就会得到解决——我不知道它在哪里设置,但你不必明确将 DISPLAY 设置为 :0

~$ grep -B1 DISPLAY ~/.bashrc
# from https://wiki.ubuntu.com/WSL#Running_Graphical_Applications
# export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2

相关内容