# WSLでの備忘録
###### tags: `windows全般`
###### author: mizuiro
## WSLでのGUI設定
まず、ホスト側で手ごろなX Serverを用意する。
今回私が使ったのはVcXsrv。理由は別にない
そうしている人が記事を書いていたからだ。
それをいい感じにインストールして起動してあげる。(設定は別にデフォルトでも構わない)

右下にこんな感じにxのマークが表示されていれば正常に起動できている。
次にWSL側でxについてのライブラリ等をインストールする
難しいことは考えずにこのコマンドを叩いてくれ
```
sudo apt install x11-apps x11-utils x11-xserver-utils dbus-x11
```
そのあとはxサーバーに対してアクセスできるようにDISPLAYの設定をしてあげる必要がある。
環境変数を変えるように手持ちのシェルのコンフィグに書き込んでやればいい
```
echo 'export DISPLAY=localhost:0.0' >> ~/.bash_profile
```
ここまでうまくいったら以下のコマンドをたたいてみてくれ
```
xeyes &
```
これはGUIがうまく動いているかどうか確かめる際によく用いられるアプリケーションだ。
動いているのなら君はもうCUIだなんだとおびえる必要はないわけだ。
幸せに暮らしてくれよ!アディオス!
### うまくいかなかった人へ
「残念だったな、あきらめてくれ」と言いたいところだが、エラーの内容をよく読んでみてほしい
エラーの内容が以下と合致していたらぜひ参考にしてほしい
* そもそもホスト側のxサーバーがインストールできない
自分のOSに対応しているXサーバーを選んでくれ(まぁWSLなのでWindowsしかないと思うが)
* WSL側でxについてのライブラリ等がインストールができない
WSL側のパッケージマネージャやOS等のアップデートをする
* DISPLAYの設定ができない。
自分が使っているshellのコンフィグなのかもう一度よく確認する。うち漏らしがないか確認する
* Error: Can't open display: :0.0と出る
WSLネットワークのipの設定に問題があると思うので、
```
echo 'export DISPLAY=localhost:0.0' >> ~/.bash_profile
```
の代わりに
```echo "export DISPLAY=\$(cat /etc/resolv.conf | grep nameserver | awk '{print \$2}'):0.0" >> ~/.bash_profile```
を打ち込んむ。
そしてVcXsrvを起動する際、Additional parameters for VcXsrvの欄に-acと設定する
## WSLでのデスクトップ環境構築
GUI用の日本語フォントをインストール
```sudo apt install fonts-ipafont```
xfceというデスクトップ環境をインストールする。(別に何でもいいが以下略)
ついでにデスクトップの環境変数の設定もしておく
```
sudo apt install xfce4-terminal
sudo apt install xfce4-session
sudo apt install xfce4
export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=1
```
これを打ち込んで起動するはず
``` startxfce4```
### もしWSLのOSがkali-linuxなら
めちゃくちゃ簡単
```
sudo apt upgrade
sudo apt install -y kali-win-kex
```
して```kex```と叩くと起動する