在 Windows Subsystem for Linux(WSL)上运行 GUI、桌面或窗口管理器

当 Windows 上运行了 X 服务器时,WSL 可以运行 Linux GUI 应用程序。基本思路是:

  1. 在 WSL 内安装桌面环境或 GUI 应用程序。
  2. 在 Windows 上启动 X 服务器,例如 VcXsrv 或 Xming。
  3. 在 WSL 中设置 DISPLAY 环境变量。
  4. 启动 Linux GUI 会话或应用程序。

这个示例使用 Xfce。

安装 Xfce

sudo apt update
sudo apt install xfce4

配置 Display 变量

打开主目录中的 .bashrc

cd ~
nano .bashrc

添加这一行:

export DISPLAY=:0.0

重新加载 shell 配置,或者关闭并重新打开 WSL 终端:

source ~/.bashrc

在启动 Xfce 之前,请确保 Windows 端的 X 服务器已经在运行。

启动 Xfce

原来的命令是:

xfce4-session

不过,更好的做法是用下面的命令启动 Xfce:

startxfce4

与直接运行 xfce4-session 相比,startxfce4 会更干净地准备会话启动流程。

避免启动重复会话

如果你想在启动 Xfce 前加一个简单的保护检查,可以先判断是否已经有 Xfce 会话在运行:

if ! pgrep -x "xfce4-session" > /dev/null
then
    startxfce4
fi

对于特定的 GUI 应用程序,例如 gedit,也可以使用同样的模式:

if pgrep -x "gedit" > /dev/null
then
    echo "Running"
else
    gedit
fi

说明

在较旧的 WSL 设置中,需要单独的 Windows X 服务器。在较新的带有 WSLg 的 Windows 系统上,Linux GUI 应用程序可能无需手动设置 DISPLAY 就能运行。更改配置前,请先检查本机的 WSL 版本和 Windows 构建版本。

P.S. 应避免直接运行 xfce4-session。请改用 startxfce4

Leave a Reply