DebianをWindows10上で動かす その7: GUIを使う

前回はWindows Subsystem for Linux上にインストールしたDebian GNU/Linuxと、ネットワーク上のファイルサーバとのファイル共有について紹介しました。

今回はWSL上でGUIをを使ってみたいと思います。

WSLでのGUIの実現方法

WSLをインストールするとわかりますが、基本的にはCUI(コマンドラインの操作)を前提としています。

もちろんGUIでもLinuxのコマンドが使えれば、python等のインタープリタやgcc等のコンパイラを使った開発を行うことができます。

しかし、やはりGUIでの操作をしたいという場合もあると思います。

ところがWSLはあくまでもLinuxカーネル相当のWindows上で実現しているだけなので、WSLにはビデオカードのようなグラフィクス機能がありません。

そこで登場するのがX Window Systemです。

X Window Systemは「プログラムを実行するシステム (クライアント)」と「画面を描写するシステム(サーバ)」を独立して動作させることができます。

従って、WSLをX Window Systemのクライアント、WSLを動かしているWindows10をX Window Systemのサーバとして設定すれば、WSLのGUIをWindows 10上に表示できることになります。

Windows10用のXサーバ

Windows用のXサーバとしてはAstec-Xという商用ソフトが定番といえば定番です。

しかし、価格は78,000円となかなか個人で手が出せる物ではありません。

フリーの物としてはXmingがあります。

Xmingはフリーといえばフリーなのですが、フリーになっている(Public Domain)のは2007年の物です。一応動作はするようですが、さすがに10年前となると不安になります。

10ポンド以上の寄付をすると最新版のXmingを入手することができます。

そこで最近目にしたのがVcXsrvです。

Download VcXsrv Windows X Server for free. Windows X-server based on the xorg git sources (like xming or cygwin's xwin), but compiled with Visual C++ 2012 Expr...

こちらは非常に活発に開発されているようです。

私がダウンロードしたときには「vcxsrv-64.1.19.6.2.installer.exe」でした。

VcXsrvのダウンロード

インストールはこのダウンロードしたファイルを実行してNextを選んでおけばOKです。

インストールが完了するとデスクトップにVcXsrv (スタートメニューにもあります)というアイコンがあるので、これを実行します。

VcXsrvのアイコン

このときファイアウォール警告が出ますが、WSLから接続するだけでしたらファイアウォールの通過を許可しなくてかまいません。

WSL側の設定

次はWSL側の設定をしていきます。

まずは画面をX ServerとしてのWindows10に表示するための設定を行います。

$ export DISPLAY=127.0.0.1:0.0

づいてテスト用にGUIアプリをインストールします。

$ sudo apt-get install x11-apps

インストールに成功したらxeyesというアプリを起動してみます。

$ xeyes &

これでWindows10画面に目玉が出ればまずは成功です。

xeyes

画面に目玉が見当たらない場合は、タスクバーにないかどうか確認してください。

もう少し実用的なアプリケーションとしてターミナルソフトlxterminalを導入してみましょう。

$ sudo apt-get install lxterminal

これで次のようなコマンドを実行するとターミナル画面が立ち上がります。

$ lxterminal &

lxterminal

ただ、フォントがイマイチかと思います。

フォントを改善するにはWindows10のフォントをWSLから参照できるようにします。

$ sudo ln -s /mnt/c/Windows/Fonts/ /usr/share/fonts/windows
$ sudo fc-cache -fv

この処理をしたあとにもう一度をlxterminaiを立ち上げてみましょう。

lxterminalのメニューで「編集」→「設定」と選ぶとスタイルタブで選ぶフォントにWindowsのフォントが表示されるようになります。

フォントの変更

フォントとしてMiguフォントを選択してみました。

多少見やすくなったでしょうか。

フォントを変更したあと

もちろんlxterminalだけでなくemacs等のアプリケーションもGUIで動作させることができます。

動作に問題がなければ下記のコマンドを実行して、次回からもGUIが使えるようにしておきましょう。

$ echo 'export DISPLAY=127.0.0.1:0.0' >> ~/.bashrc

操作の自動化

ここまでの設定ではWSLのGUIアプリを実行するには次のような操作が必要です。

  1. Windows10でVcXsrvを起動する
  2. WSLを起動する
  3. WSLでGUIアプリを起動する

これはちょっと面倒とのことで自動化した方がいるようです。

詳しく書かれているので、こちらを参考にすると良さそうです。

 諸々の理由によりWindowsな皆様こんにちは。Bash on Ubuntu on Windows使ってますか?私はBash on openSUSE on Windows派です。  Windows10の10月17日予定のアップデー...

まとめ

今回はWindows Subsystem for Linuxを使って導入したDebianでGUIを使えるようにしてみました。

WindowsにフリーのXサーバであるVcXsrvを導入することで、GUIアプリも簡単に使うことができます。GUIアプリが必要な方は試してみてください。

次回はWSLによるDebian GNU/Linuxをしばらく使った感想を紹介します。