Windows 上で X サーバーが動作していれば、WSL で Linux の GUI アプリケーションを実行できます。基本的な考え方は次のとおりです。
- WSL 内にデスクトップ環境または GUI アプリケーションをインストールする。
- VcXsrv や Xming などの X サーバーを Windows 側で起動する。
- WSL で
DISPLAY環境変数を設定する。 - Linux の GUI セッションまたはアプリケーションを起動する。
この例では Xfce を使用します。
Xfce をインストールする
sudo apt update
sudo apt install xfce4
Display 変数を設定する
ホームディレクトリにある .bashrc を開きます。
cd ~
nano .bashrc
次の行を追加します。
export DISPLAY=:0.0
シェル設定を再読み込みするか、WSL ターミナルを閉じて開き直します。
source ~/.bashrc
Xfce を起動する前に、Windows 側の X サーバーがすでに実行中であることを確認してください。
Xfce を起動する
元のコマンドは次のものでした。
xfce4-session
ただし、Xfce は次のコマンドで起動するほうが適切です。
startxfce4
startxfce4 は、xfce4-session を直接実行するよりも、セッション起動の準備をより適切に行います。
重複セッションの起動を避ける
Xfce を起動する前に簡単なチェックを入れたい場合は、Xfce セッションがすでに実行中かどうかを確認します。
if ! pgrep -x "xfce4-session" > /dev/null
then
startxfce4
fi
gedit など特定の GUI アプリケーションについても、同じパターンを使用できます。
if pgrep -x "gedit" > /dev/null
then
echo "Running"
else
gedit
fi
注意点
古い WSL 環境では、Windows 側に別途 X サーバーが必要です。新しい Windows システムで WSLg を使用している場合は、DISPLAY を手動で設定しなくても Linux GUI アプリケーションが動作することがあります。設定を変更する前に、ローカルの WSL バージョンと Windows ビルドを確認してください。
P.S. xfce4-session を直接実行するのは避けるべきです。代わりに startxfce4 を使用してください。
