Windows Subsystem for Linux(WSL)でGUI、デスクトップ、またはウィンドウマネージャーを使う

Windows 上で X サーバーが動作していれば、WSL で Linux の GUI アプリケーションを実行できます。基本的な考え方は次のとおりです。

  1. WSL 内にデスクトップ環境または GUI アプリケーションをインストールする。
  2. VcXsrv や Xming などの X サーバーを Windows 側で起動する。
  3. WSL で DISPLAY 環境変数を設定する。
  4. 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 を使用してください。

Leave a Reply