WSL + MobaXtermで簡単にGUI環境を構築する

WSLではGUIアプリが使えないと解説している記事もありますが、それは単にXサーバ(X Windowサーバ)が用意されていないというだけです。

なので、Windows用Xサーバを用意してあげればGUIアプリ(X Windowアプリケーション)を使うことができます。

Windows用のXサーバといえば「Xming」が有名ですが、今回はXサーバとターミナルが合体した便利ソフト「MobaXterm」を使用します。

MobaXtermのインストール

MobaXtermをインストールします。

mobaxterm.mobatek.net

インストール不用のポータブルエディションでもOKです。

MobaXtermの起動

インストールが終わったらMobaXtermを起動します。 これだけでXサーバが立ち上がります。簡単ですね!

Bash on Ubuntu on WindowsのUbuntuに接続

次にMobaXtermのターミナルをBash on Ubuntu on WindowsのUbuntuに接続します。

[Session] - [Shell]の順にクリックし、Terminal shellで[Ubuntu Bash (WSL)]を選択します。

bouow_18-2.png

bouow_19-2.png

bouow_20-2.png

[OK]を押すとターミナルが起動します。

bouow_21.png

GUIアプリの起動

MobaXtermのターミナルからGUIアプリを起動します。

まだGUIアプリが入ってない場合は、定番のx11-appsを入れてみましょう。

sudo apt-get install x11-apps

インストールが完了したら

xeyes &

で目玉が表示されればOKです。

bouow_22.png

標準のターミナルからもGUIアプリが起動できるようにする

先ほどはMobaXtermのターミナルからGUIアプリを起動しました。同じことをBash on Ubuntu on Windowsの標準ターミナルでできるようにします。

まず、MobaXtermを起動します。MobaXterm自体がXサーバなので、GUIアプリ使用時にはMobaXtermを立ち上げておく必要があります。

次にBash on Ubuntu on Windowsの標準ターミナルで

xeyes &

を実行してみると、

Error: Can't open display:

というエラーが表示されると思います。

X Window Systemを使用する際にはディスプレイ番号を指定する必要があり、この設定がされていないためにこんなエラーが出てしまいます。MobaXtermのターミナルの場合は、この設定が自動的に行われているからエラーが出ることなくGUIアプリが実行できてたというわけなんです。

標準ターミナルにもディスプレイ番号を指定してやればMobaXtermのターミナルと同様にGUIアプリを起動することができます。ディスプレイ番号の指定は以下のように環境変数を設定すればOKです。

$ export DISPLAY=localhost:0.0

これでGUIアプリが起動できるようになりました。

bouow_23.png

毎回この設定をするのが面倒なら、~/.bashrcにこの設定を追加してください。