如何在 Windows 10 中创建快捷方式以在 VcXsrv 中启动 WSL2 GUI 应用程序

6 windows-subsystem-for-linux wsl2

我正在尝试为 Firefox 创建从 WSL2 到 Windows 10 Home 的快捷方式,但我一直无法做到这一点。我正在使用 VcXsrv,我已将其设置为自动启动。我无法使用 WSLg,因为我使用的不是 Windows 11。

您是否可以在 Windows 快捷方式中使用 Firefox 等应用程序而无需DISPLAY手动导出?

Not*_*1ds 11

听起来像你:

  • 已经DISPLAY正确设置了变量,并且可以从 VcXsrv 中的命令行运行 Firefox。这是一个很好的开始。

  • 尚未DISPLAY在 中导出变量,~/.bashrc因为您提到必须手动导出它。

如果是这种情况,那么您首先需要在启动配置中导出该变量。如果您已经完成了这一部分,请跳至下面的“快捷方式命令行”部分。

在启动时导出 DISPLAY

将以下内容添加到您的~/.bashrc

export DISPLAY="$(hostname).local:0"
Run Code Online (Sandbox Code Playgroud)

它使用 mDNS 根据我在此处关于该主题的回答来选择正确的 IP 地址。如果您有其他DISPLAY适合您的设置,则可以使用它,但我发现hostname在大多数情况下基于方法是最简单的。

然后:

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

让它重新读取配置。您还可以重新启动 shell 来确认。然后确保 Firefox 运行。

快捷命令行

当您处于交互式shell 中时,上述内容有效,因为 rc 文件是为交互式 shell 提供的。但是,当您通过快捷方式启动 Firefox 时,您需要使用该wsl.exe命令,并且默认情况下该命令不是交互式(或登录)shell。

根据记忆,尝试将 Windows 快捷方式设置为:

wsl -e bash -lic "firefox"
Run Code Online (Sandbox Code Playgroud)

这将运行 Bash:

  • 作为登录 shell ( -l),它将获取您的~/.bash_profile
  • 作为一个交互式 shell ( -i),它将为您提供~/.bashrc
  • 并运行命令 ( -c) firefox

  • @JW0914 请记住,Markdown 和 HTML 语义是有目的的。切勿使用单项目符号来表示标注。项目符号是*列表项*,应该这样使用。不这样做至少会让屏幕阅读器软件感到困惑。因此,我恢复了您的编辑,因为它们使答案*不那么*可读。此外,*每个*流都不需要编号列表。答案通常按时间顺序排列,并且*段落*流程更具可读性,除非需要*短列表项*。在这种情况下,我同意最好使用编号列表。 (2认同)