当 Windows 上运行了 X 服务器时,WSL 可以运行 Linux GUI 应用程序。基本思路是:
- 在 WSL 内安装桌面环境或 GUI 应用程序。
- 在 Windows 上启动 X 服务器,例如 VcXsrv 或 Xming。
- 在 WSL 中设置
DISPLAY环境变量。 - 启动 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。
