WSLで作業する時のグラフィカルユーザーインターフェースについて

Image Credit: Cygwin logo

目次

Cygwinのインストール

まずは http://x.cygwin.com/ または http://cygwin.com/ を開いて Cygwinのインストーラーをダウンロードします。 インストール作業については, 公式サイトの説明かほかのブロガーさんの記事を参照してください1

WSLのインストール

WSLをインストールする前に, 「コントロールパネル」「プログラムと機能」 「Windowsの機能の有効化または無効化」 のとこにある「Linux用Windowsサブシステム」 というオプションをオンにしておく必要があります。

Windowsの機能の有効化または無効化
Windowsの機能の有効化または無効化

次に,Windows 10のMicrosoft StoreからUbuntuをダウンロードしてインストールします。 openSUSEなどの他のディストリビューションでも良いと思いますが, 関連ツールをインストールするときに使うコマンドが異なりますのでご注意ください。

インストールが終われば, CLIにおいて下のようにXClipやXサーバー関連のツールをWSLにインストールします。

  sudo apt install xclip
  sudo apt install x11-xserver-utils
  sudo apt install x11-apps

Cygwinを用いてXサーバーを立てる

Cygwinを開いて,次のコマンドを実行すれば, Xサーバーが動くようになります2。 バックグラウンドで続いて動かせたいので, このCygwinのウィンドウを最小化にしておきます。

  startxwin -- -listen tcp

別のCygwinのウィンドウを開いて, 下のコマンドを実行し,クライアントからの接続制限を解除しておきます。

  DISPLAY=:0.0 xhost +

Xサーバーへの接続テスト

インストールされたWSL(Ubuntu)を開いて, CLIにおいて下のように DISPLAY 変数を設定しておきます3

  export DISPLAY=:0.0

次に,Xサーバーの機能が正常に働いているかどうかについて, xeyesxclock コマンドでテストします。 エラーがなく,画像が見えたら成功です。

これで,色々なGUI関連の応用ができるようになります。 例えば,Xclipなども使えるようになるはずなので, Emacsやtmuxに設定し,GUI/CLIの間にコピペをするときに便利かと思います。

SSHでリモートにアクセスするときのグラフィカル転送

ローカルが正常の場合は, SSHでリモートにアクセスする場合もチェックしてみましょう。

SSHでログインしただけで,Xサーバーが正常の機能しない場合は, DISPLAY 変数の設定に問題があるかもしれません。

次のように,ローカルに設置しているXサーバーのIPアドレスを DISPLAY 変数に知らせます。

  export DISPLAY={ip.address.???.???}:0.0

それでもダメな場合は, 遠隔やローカルのSSH設定を確認してみると, どこの問題かがわかるようになるかもしれません。

このページを編集

Xin Li
Xin Li
講師

機械学習及び深層学習の応用に関する研究に従事し,不均一・偏りのあるデータに対するサンプリング手法および学習アルゴリズムに注目している。詳細はこちら

comments powered by Disqus
次へ
前へ

関連項目