Bash on Ubuntu on Windows で GUI 環境を構築する

Bash on Ubuntu on Windows で LXDE が動きます。
VNC を使用してアクセスします。
Mac や Linux から X11 Forwarding もできます。

## 必要なパッケージのインストール

Bash on Ubuntu on Windows を起動して、必要なパッケージをインストールします。

```
apt-get install xorg lxde-core tightvncserver firefox openssh-server
```

## VNC 設定ファイルの生成

一旦、 VNC サーバーを起動して、設定ファイルを生成します。

```
tightvncserver :1
```

パスワードの設定を促されるので、ログイン用のパスワードを設定します。

```
You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
xauth:  file /home/USERNAME/.Xauthority does not exist

New 'X' desktop is DESKTOP-MACHINENAME:1

Creating default startup script /home/USERNAME/.vnc/xstartup
Starting applications specified in /home/USERNAME/.vnc/xstartup
Log file is /home/USERNAME/.vnc/DESKTOP-MACHINENAME:1.log
```

設定後、一旦 VNC サーバーを kill します。

```
tightvncserver -kill :1
```

## LXDE の起動設定

xstartup ファイルに LXDE の起動設定を追記します。

```
nano ~/.vnc/xstartup
```

xstartup ファイルの末尾に、以下を追記します。

```xstartup
lxterminal &
/usr/bin/lxsession -s LXDE &
```

## VNC サーバーを起動

VNCサーバーを再度起動します。

```
tightvncserver :1
```

## TightVNC viewer のインストール

[こちらを参考に](http://www14.plala.or.jp/campus-note/vine_linux/server_vnc/tightvnc.html) TightVNC viewer をインストールします。

## VNC Server へアクセス

TightVNC viewer を起動し、 `localhost:5901` へアクセスすると、 Bash on Ubuntu on Windows の LXDE へ接続できます

<img width="1280" alt="スクリーンショット 2016-08-06 2.04.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/40662/4eafbacf-3b75-fa61-11d6-5254810475d1.png">

<img width="1280" alt="スクリーンショット 2016-08-12 5.21.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/40662/44298309-2b82-3b90-83a0-c8c508e906e3.png">


## その他

### X11 クライアントの使用

- Mac の XQuartz などから [X11 Forwarding する場合](https://github.com/Microsoft/BashOnWindows/issues/889#issuecomment-244060849) は `/etc/ssh/sshd_config` の先頭付近に以下のパラメータを追加し、sshd を再起動します。

```
AddressFamily inet 
ListenAddress 0.0.0.0 
X11UseLocalhost yes
```

`AddressFamily` は `ListenAddress` よりも先に書く必要があります。

sshd を開始し、 X クライアントから xeyes などが起動できれば OK

```
bashOnWindowsHost$ sudo service ssh start
...
xclientHost$ ssh -X user@bashOnWindowsHost
xclientHost$ xeyes &
```

- [Xming](https://sourceforge.net/projects/xming/) を使用することも可能です。
- Emacs(gtk3) は `--without-dbus` で[ビルドすれば動作します](http://qiita.com/nanasess/items/6b731c933ebcd9b1c95a)。

## 参考

- [FULL GUI on Bash on Ubuntu on Windows!!!!!]( https://m.reddit.com/r/Windows10/comments/4w0fbn/full_gui_on_bash_on_ubuntu_on_windows/)
- [TightVNC のインストール](http://www14.plala.or.jp/campus-note/vine_linux/server_vnc/tightvnc.html)
- [[Bash on Windows] Getting dbus and X server working]( https://www.reddit.com/r/Windows10/comments/4rsmzp/bash_on_windows_getting_dbus_and_x_server_working/)
- [Bash on Ubuntu on Windows + XmingによるGUI](http://qiita.com/makky0620/items/e31edc90f22340d791ff)
- https://lists.gnu.org/archive/html/bug-gnu-emacs/2013-08/msg00853.html
- http://superuser.com/questions/1064801/i-broke-the-windows-linux-subsystem-bash-on-ubuntu-on-windows-10-linux-help
- http://www.cs.gunma-u.ac.jp/~nagai/wiki/index.php?Ubuntu%2014.04%20%B1%D1%B8%EC%C8%C7%20(64bit)%20%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%B8%E5%A4%CB%C0%DF%C4%EA%A4%B7%A4%BF%A4%B3%A4%C8
- http://emacs.tsutomuonoda.com/emacs24-1-compile/
- http://eshamster.hatenablog.com/entry/2016/07/03/125925
- http://ask.xmodulo.com/fix-broken-x11-forwarding-ssh.html
- https://forums.gentoo.org/viewtopic-t-665924-view-previous.html