こんばんは、Jrです。
以前の記事でWSLの簡単な導入を書いて、続きを書こうとは思っていたのですが気づいたら一カ月近く経過していました。
いやー、月日が経つのは早いなぁ…。
その記事はこちらになります。
今回はタイトルの通り、WSLでGUIアプリを動かすための方法を紹介したいと思います。
具体的にはgnuplotが動くくらいのところまで説明できたらなぁと。
では早速いってみましょう!
Windows側の準備
WSL上でGUIアプリを使うには、Windows側にXサーバというものをインストールする必要があります。
イメージとしては、Windows側にローカルサーバを構築して、WSL上のGUIアプリの描画をXサーバが行う感じですかね。この辺りはあまり詳しくないので間違ってたらすみません…。
Windows 10で利用できるXサーバはいくつかあるのですが、今回は「VcXsrv」というアプリを想定して説明します。これはこちらからダウンロードできます。

このアプリはフリーライセンスで無償で利用できるので、特にこだわりがなければ「VcXsrv」で問題ないと思います。
無事インストール出来たら次のようにショートカットをデスクトップにでも作っておくと起動が楽になります。
まず「VcXsrv」をインストールしたフォルダを見ると「vcxsrv」という実行ファイルがあると思うので、こいつを左クリックしてショートカットの作成を選択します。

すると開いているフォルダにショートカットができると思うので、そいつをデスクトップにドラッグ&ドロップしましょう。
ショートカットを右クリックしてプロパティを開くと、リンク先という項目があり、そこに文字列が書かれていると思います。例えば自分の場合はこんな感じ。
"D:\Program Files\VcXsrv\vcxsrv.exe"
現在書かれている文字は消さずに空白スペースで区切り、追加で次の様に入力します。
:0 -clipboard -multiwindow -xkbmodel jp106 -xkblayout jp -dpi auto
自分の例だとこんな感じになります。
"D:\Program Files\VcXsrv\vcxsrv.exe" :0 -clipboard -multiwindow -xkbmodel jp106 -xkblayout jp -dpi auto
ここまででWindows側の準備は完了です。WSLでGUIアプリを使いたいときは、予め今作成したショートカットを起動しておけばオッケー。
WSL側の準備
WSL側ではapt insrtallでいくつかのアプリケーションをインストールしておきます。次のものをインストールしておきましょう。
sudo apt install x11-apps x11-utils x11-xserver-utils gnuplot
確かこれで必要なものをまとめてインストールできるはず。何か問題があったら
sudo apt install x11-apps
のように一つ一つ実行していけば大丈夫です。
ここまでで準備は完了です。試しに何か動かしてみましょう。
まず最初にデスクトップのvcxsrvをダブルクリックして起動しておきます。
次にwsl上で
export DISPLAY=localhost:0.0
を実行します。これはXサーバを利用するための準備みたいなものだと思っておけば問題なさそう(自分はそのくらいの認識です)
で、例えば
xeyes
と入力してみて、目玉のウインドウ?が表示されれば成功です。

同様にgnuplotも起動できます。
gnuplot
と入力してgnuplotを起動させた後、例えば
plot sin(x)
と入力すればsinカーブを描くことができます。


他にもXサーバで使えるGUIアプリはいっぱいあると思うので、試してみると楽しいかも?
自分はEmacsをGUIで使ってたりします。
で、このままでもいいっちゃいいんですが、毎回export~と入力するのはちょっと面倒。そこで、簡単な設定をすることで、その部分を自動化しましょう。
WSL上のホームディレクトリに.bashrcというファイルがあると思うので、一番最後に次の一文を追加しましょう。もしこのファイルがなかったら新規で作ってやはり次の様に入力します。
export DISPLAY=localhost:0.0
これにより、Windows側でvcxsrvを起動するだけでWSLでGUIが利用できるようになります。
ついでに日本語フォントを使えるように
このままだと日本語が扱えないので、日本語環境が使えるようにします。正直この辺についてはあまり仕組みは理解しておらず、さらに環境を作ったのがかなり前なので参考にしたサイトとかもあまり覚えてないんですよね…。
なのでとりあえず自分の設定を記して、さらに最後にいくつか参考になりそうなサイトを置いていきますね。
まずapt installでいくつかインストールします。
sudo apt install fonts-ipafont uim uim-xim uim-anthy
多分これが日本語フォントや日本語を入力するシステムのインストールのはず。
次に、ホームディレクトリにある.bashrcに以下を追加してください。
export LC_MESSAGES=ja_JP.UTF-8
export LC_IDENTIFICATION=ja_JP.UTF-8
export LC_COLLATE=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
export LC_MEASUREMENT=ja_JP.UTF-8
export LC_CTYPE=ja_JP.UTF-8
export LC_TIME=ja_JP.UTF-8
export LC_NAME=ja_JP.UTF-8
#
export XIM=uim
export XMODIFIERS=@im=uim
export UIM_CANDWIN_PROG=uim-candwin-gtk
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
#
#if [ $SHLVL -eq 1]; then
# uim-xim &
# fi
#から始まる行はコメントだと思うので書かなくても良さそうだけど、何を書いているのかイマイチわからないのでとりあえずメモのまま載せておきます。
というかいくつかサイト覗いたところこの設定必要っぽいのになんでコメントアウトしてるんだろう…。
で、最後にこれまたホームディレクトリの.uimに次の様に書き込みます。このファイルはないかもしれないので、なかったら作りましょう。
(define default-im-name 'anthy)
(define-key generic-on-key? '("<Control> "))
(define-key generic-off-key? '("<Control> "))
これで一応日本語設定はできていると思います。
おわりに
というわけでWSLでGUIアプリを動かすための設定と、おまけ的に日本語入力を可能にする設定のお話でした。
特に日本語化に関しては設定方法とか意味を忘れていてあまり参考にならなったかもしれません…。というか現状あまり参考にしないほうがいいかも。新年度になったら多分研究室で環境構築するので、そしたら加筆修正すると思います。
とは言えWSL自体は色々できて楽しいので興味があればぜひ触ってほしいです。記事では触れなかったけどTeXも使えるしブラウザすら使えたりします。すごい
ではまた別の記事でお会いしましょう。
参考サイト
WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編)
Bash on Ubuntu on WindowsでX Window System(X11)を動かす
いろんなX11アプリケーション
お前らのWSLはそれじゃダメだ
Bash on Ubuntu on Windows とX Windowの組み合わせで日本語表示と日本語入力(その2)
コメント