WSLg 如何在 Windows 上无缝运行 Linux GUI 程序

简介

WSL 全称 Windows Subsystem for Linux,是微软在应用商店上架的一款 Windows 特性,可以把 Linux 作为一个子系统在 Windows 原生运行。目前有两代,称为 WSL 和 WSL2。

WSL 第一代是用 Windows 来模拟 Linux kernal,处理系统相关的交互,只有命令行界面,文件系统不能在 Windows 下访问。

而 WSL 2 则是像虚拟机一样,运行了真正的 Linux。和虚拟机不同的是,它速度非常快,而且文件系统互通,可以直接在 Windows 下访问。

WSLg 是 Windows Subsystem for Linux GUI 的缩写,该项目的目的是在完全集成的桌面体验中支持在 Windows 上运行 Linux 图形界面 应用程序(X11 和 Wayland)。

WSLg 实现了 Windows Linux 同时使用的体验。在 Windows 系统下可以同时使用 Windows 和 Linux 应用。而且,WSLg 使 Linux GUI App 像 Windows 上的原生 App,可以直接整合到开始菜单或者任务栏中,从 alt-tab 窗口切换即可体验到实现跨 Windows 和 Linux 应用程序的复制/粘贴。


使用条件

目前只是内测,需要 Windows 10 Insider Preview build 21362+
之后会逐渐发布到公共推送的系统版本里。

建议在为WSL启用了虚拟GPU(vGPU)的系统上运行WSLg,可以安装对应显卡的驱动:
AMD GPU WSL 驱动
Intel GPU WSL 驱动
Nvidia GPU WSL 驱动


安装步骤

  • 没有安装过 WSL
    使用有管理员权限的 Shell (cmd 或者 powershell),运行
wsl --install -d Ubuntu

然后根据提示重启。重启之后会需要输入新 Linux 系统的用户名和密码,和 Windows 用户名、密码完全独立。
然后就 OK 啦!

  • 安装过 WSL
    注意 WSLg 只支持 WSL 2 而不支持 WSL!

打开一个 WSL 2 的 Terminal,运行

wsl --update

即可更新到支持 WSLg 的最新版本。


安装 GUI APP

在开始菜单中找到 Ubuntu 图标,点击打开即可运行 WSL 2 的虚拟机。因为没有安装 GUI 桌面,目前只有命令行界面。

如果 Linux 命令行成功运行,恭喜你成功在 Windows 上跑起了 Linux!

下面我们可以来安装其他 GUI APP了,一些示例:

## Update all packages in your distro
sudo apt update

## Gedit
sudo apt install gedit -y

## GIMP
sudo apt install gimp -y

## Nautilus
sudo apt install nautilus -y

## VLC
sudo apt install vlc -y

## X11 apps
sudo apt install x11-apps -y

## Google Chrome
cd /tmp
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb 
sudo apt install --fix-broken -y
sudo dpkg -i google-chrome-stable_current_amd64.deb

## Microsoft Teams
cd /tmp
sudo curl -L -o "./teams.deb" "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb"
sudo apt install ./teams.deb -y

## Microsoft Edge Browser
sudo curl https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-dev/microsoft-edge-dev_91.0.852.0-1_amd64.deb -o /tmp/edge.deb
sudo apt install /tmp/edge.deb -y

安装之后,在开始菜单的 Ubuntu 下即可找到这些应用。

虽然是安装在 Linux 的子系统里,但可以从开始菜单、任务栏直接运行,而且有自己独立的窗口,感觉和其他 Windows 应用程序没什么区别,系统切换的体验与其说丝滑,不如说直接感受不到系统之间的差异了。


运行截图

WSLg_IntegratedDesktop.png

Edit with Markdown