Linux GUIアプリのサポートと初期プレビュー版のWSLg登場
ついに「WSL」でLinuxのGUIアプリがサポートされました。この仕組みは「WSLg」と呼ばれ、初期プレビュー版の「WSLg」がリリースされました。
GUIアプリのサポート
今まで「WSL」はLinux環境のサポートやコマンドラインツールなどCUIアプリのサポートに焦点があてられ開発されてきました。しかし開発者の中にはLinuxのGUIアプリを利用したい開発者もいるでしょう。
「WSL 1」が登場したのは2016年4月のことですが、例えば以下のように2016年8月にすでにGUIアプリのサポートが要望に挙げられています。
この要望から5年が経過し、そしてその途中で2019年に「WSL 2」が登場し、そしてついに「WSL 2」でLinuxのGUIアプリがサポートされました。
(とは言ってもGUIアプリのサポートは、まだ初期プレビュー版です。)
Windows Subsystem for Linux GUI
上記でも紹介したように「WSL」でLinuxのGUIアプリを動かす仕組みは、「WSLg」と呼ばれています。「WSLg」は「Windows Subsystem for Linux GUI」の略称です。
GUI環境の統合
「WSLg」により「Windows」のGUI環境と「Linux」のGUI環境を高度に統合し、「Windows」のスタートメニューやタスクバーとの連携、「Alt + Tab」によるウィンドウの切り替え、WindowsとLinuxアプリ間のコピー&ペーストなど、優れたUXを提供します。また「Windows」及び「Linux」向けにクロスプラットフォームでアプリを開発している開発者は、「Windows」上で「Windows」と「Linux」上で動作するアプリの開発や動作確認が可能になります。
X11とWaylandのサポート
「Linux」には「X11」と「Wayland」の2種類のディスプレイサーバーがあります。LinuxのGUIアプリはどちらかの環境で動作しますが、「WSLg」はどちらの環境でもLinuxのGUIアプリをサポートしています。
オーディオのサポート
「WSLg」ではサウンドの入出力がサポートされており、GUIアプリからオーディオの再生やマイクを利用可能です。例えば「Audacity」を利用して音声の録音や再生が可能です。
OpenGLのハードウェアアクセラレーション
「Windows」のGPUを利用してLinuxのGUIアプリからハードウェアアクセラレーションに対応した「OpenGL」を利用できるようになりました。ただし「WDDMv3.0」に対応したGPUドライバーやLinuxディストリビューション側に「Mesa 21.x(d3d12 Galliumドライバー)」が必要になります。
ちなみに「Ubuntu on Windows Community Preview」は「Mesa 21.0」を提供しています。
動画で見るGUIアプリの動作状況
LinuxのGUIアプリが動作する様子は、以下の動画を参照してください。WSLgの動作要件
「WSLg」が動作する環境です。1.Windows 10のバーション
「Windows 10 Insider Preview build 21362」以降の「Windows 10」が必要です。今後リリースされる一般ユーザー向けのアップデートでも「WSLg」が利用できるようになる予定です。
2.WSLのバージョン
「WSLg」は「WSL 2」でのみサポートされます。「WSL 1」で動作しているLinuxディストリビューションは、事前に「WSL 2」で動作するように設定を変更してください。
「WSL 2」のインストール方法は、以下を参考にしてください。
Linuxディストリビューションを「WSL 2」上で動作させる方法は、以下を参考にしてください。
3.WSLのアップデート
「Windows Update」を起動して「WSL」をアップデートします。4.OpenGLのハードウェアアクセラレーション(任意)
これは任意ですが「WSL」をサポートしているGPUドライバーを利用すれば「vGPU(仮想GPU)」を利用できるようになり、Linuxディストリビューション側で「Mesa 21.x(d3d12 Galliumドライバー)」が利用可能ならば「OpenGL」のハードウェアアクセラレーションが効くようになります。「WSL」をサポートしているプレビュードライバーは、以下を参照してください。
Linux GUIアプリのインストール
Linux GUIアプリのインストールは各Linuxディストリビューションの作法に従います。アプリをインストールする
例えば「Ubuntu」では以下のように各種アプリをインストール可能です。## 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
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
アプリを起動する
アプリはコマンドから直接起動することもできますし、「Windows」のスタートメニューから起動することも可能です。コマンドラインから起動する例
一般的なLinuxの作法と変わらないですね。スタートメニューから起動
インストールしたアプリが自動的にスタートメニューに列挙され、スタートメニューからアプリを起動することも可能です。アプリの起動例
いくつかアプリを起動してみました。日本語入力は軽く見た限り一部の機能がうまく動作しません。