MJHD

エモさ駆動開発

2019年最高のWSL環境を求めて

環境のスクショ

2016年、僕はWSLに出会い感動してからというもの、「最高のWSL環境を求めて」さまよい続けました。
来る日も来る日も「Windowsは最高・・・Windowsはクソ・・・Windowsは最高・・・」と呟きながら花びらを散らし、バグのあるWindowsアップデートにも負けず、急に唸りだすRuntimeBrokerたちにも負けず、費やした時間は数知れず。
時にはディストリビューション壊して再インストールして、時にはHyper-Vに浮気をしたり、時にはiMacを買ってそっちに逃げたりしながら・・・。
今回は2019年、僕が「最高」だと思うWSL環境をまとめたいと思います。

過去の記事
mjhd.hatenablog.com

Xサーバ

LinuxGUIアプリケーションを表示するために必要なXサーバ、以前はVcxsrvを使っていましたが、現在のおすすめはX410です。
シェアウェアだけあってとても安定しています。とりあえず入れとけば完璧に動く、という安心感は他にありません。
今なら4700円割引(ほんとか)らしいです。

www.microsoft.com

ターミナルエミュレータ

ターミナルエミュレータはwslttyを使ったりX11経由でgnome-terminal, tilixなどを使っていましたが、やはり機能面と安定感の両立がなかなかできませんでした。
wslttyは機能面・デザイン面で劣るし、gnome-terminal、tilixなどをX11越しで使うのはIMEの設定が必要であったりクリップボードが安定しなかったり起動がもたついたり、なかなか満足いく体験には至りませんでした。

現在はalacrittyを使っています。
alacrittyはGPUを使用した高速なレンダリングが特徴の端末で、マルチプラットフォームなので機能面での不足はあまりありません。Rustさまさまです。
描画がとにかく早いので、WSL上でzsh使ってももたつきがほとんどないです。マジで早い。

Windowsの場合、初回起動時に「ホームディレクトリ\AppData\Roaming」以下に「alacritty/alacritty.yml」ファイルができるので、いい感じに設定してあげてください。
「alacritty theme」で検索すれば有名な色設定をコピペできます。
ConPTYの設定項目をtrueにしておくと良いです。
Microsoftも頑張っています。

https://cloud.githubusercontent.com/assets/4285147/21585004/2ebd0288-d06c-11e6-95d3-4a2889dbbd6f.png

github.com

あと、Terminus、FluentTerminalという端末もモダンでWindows10らしさがあって良いです。が、まだ発展途上ということもあり、特にパフォーマンスの観点でオススメできません。今後を見守りたいです。

https://github.com/felixse/FluentTerminal/raw/master/Screenshots/terminal.jpg

https://github.com/Eugeny/terminus/raw/master/docs/readme.png

Terminus

GitHub - felixse/FluentTerminal: A Terminal Emulator based on UWP and web technologies.

今後の改善点

やはりWSL最大の不満点は、Windows側からWSLのFSをいじれないことでしょう。
しかし、ここもMicrosoftは頑張っていて、UNIXドメインソケットを実装したことによりWindowsとWSL間の高速で汎用的な通信が可能になり、これを通してファイルを共有するという機能が盛り込まれると発表しています
(このアップデートが入るまではsftpやftpで共有するぐらいしか手段がなかった。samba動かんし。Dokan使ってマウントしたり)

WindowsからWSL側のファイルシステムが気持ちよく触れるようになれば、例えばWindowsネイティブのIDEからWSL上のプロジェクトを開き、ビルドなどはWSL上で行う、といったシームレスな開発ができるようになる予感がしています。
まだまださまよい続ける必要がありそうです。
Microsoft頑張って。