WSL用のターミナルソフトにHyperをオススメする

# 前書き
元々この記事は，2018年4月頃に書こうと思っていましたが，諸事情により見送っていました．理由は，旧バージョンのHyperTermでは**256色表示ができなかった**からです．

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Windows版のHyperTerm, Ver3.0で256色表示ができるようになってる！<br><br>←2.1.0<br>→3.0.0<br><br>まだトップページのDLリンクは2.1.0のままだけど，Releaseページからダウンロードできるっぽい<a href="https://t.co/W7YvxrXaVr">https://t.co/W7YvxrXaVr</a> <a href="https://t.co/07ltl6NUym">pic.twitter.com/07ltl6NUym</a></p>&mdash; WGG (@WGG_SH) <a href="https://twitter.com/WGG_SH/status/1080032746976628736?ref_src=twsrc%5Etfw">2019年1月1日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


# はじめに
2016年8月のWindows10 Anniversary Updateで，WindowsSubsystemforLinux(**WSL**)が導入され，Windows環境における開発の敷居が大きく下がりました．それまで仮想マシンやデュアルブートでLinuxOSを使用しなければ困難だった環境もWindows+WSLのみでLinuxと同様に行えるようになったと思います(まだ一部不安定なところもありますが)

私の周囲(学校)でも，2017年春頃から少しずつWSLというワードを聞くようになり，使う人を見るようになりました．しかし，1つ気になった点がありました．それは，**Windows標準のcmd.exeでWSLを動かしている**人が多いという点です．

# cmd.exe以外のターミナルソフトを使う理由
幾つか理由はありますが，最も根本に存在するのは**拡張性が低い**ことだと思います．これは私の思想なのですが，ターミナルソフトやテキストエディタなど，日常的に使うソフトウェアは「標準機能でそれなりのことができて，拡張・カスタマイズで使用する特定の個人にフィットさせる」のがベストだと思っています．拡張性が低いソフトは多くの人にそれなりの満足度にはなったとしても，**最高の使用感**を得ることは難しいです．

そこで今回はターミナルソフトとしてHyperを勧めるのですが，Windowsで使用できるターミナルソフトは他にもあるのでいくつか名前だけでも紹介しておきます．

+ [wsl-terminal](https://github.com/goreliu/wsl-terminal)
+ [cmder](http://cmder.net/)
+ [ConEmu](https://conemu.github.io/en/BashOnWindows.html)
+ [Hyper](https://hyper.is/)

# Hyperについて
公式ページのトップに映っているこの動画を見るのが一番簡潔でわかりやすいと思います
![](https://media.giphy.com/media/2A2fPGfTZxXBWQgzjU/giphy.gif)

HyperはElectron製のマルチプラットフォームで動作するターミナルソフトで，HTML/CSS/JSで作られているので，CSSを設定して見栄えを自由に変更したり，JavaScript(Node.js)で書かれた拡張機能をインストールすることで機能を増やしたりすることができます．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170422/423a53d1-599f-22f5-916a-e791b8a35ed7.png)
このようにタブ機能や画面分割を行うこともできます(tmux等でも良いのですが...)


12月末にVer3.0.0が公開されて，今までWindows版で問題となっていた256色表示の問題などが解消されました．この記事を執筆した時点(2019年1月2日)では，トップページのDLリンクはまだVer2.1.0のままなので，[GithubリポジトリのReleaseページ](https://github.com/zeit/hyper/releases)にいくと最新版をダウンロードできます．Windowsの場合は，拡張子が`.exe`のリンクをクリックするとインストーラをダウンロードできます.

# 設定
`Ctrl+,`キーで設定ファイルを開くことができます．色々設定項目は存在するのですが，とりあえずWSLで使いたい場合は`Shell`の項目にbashのパスを渡すと起動時にWSLのbashが実行されます．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/170422/ca5b32f5-8707-2721-6d93-88ef00b39192.png)


# 拡張機能
有志によって拡張機能が作られ公開されています．中にはまだMacでしか動作しないものもありますが，いくつか紹介します
[awesome-hyper](https://github.com/bnb/awesome-hyper)には，沢山のプラグイン，テーマ等が纏められているのでそちらを見るのも良いかもしれません．

* hyper-material-theme
* hyper-overlay
* hyperpower

## 拡張機能のインストール
基本的には，npmパッケージの名前を設定ファイルの`plugins`項目に記述するだけで導入できます．殆どのパッケージは，Hyperを再起動しなくても，設定ファイルを保存した直後に反映されます．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170422/bdf61410-96ad-113e-6f3c-2146a5f25fca.png)


## hyper-material-theme
定番のマテリアルテーマです．この他にも[ここ](https://hyper.is/themes)にテーマが色々用意されているので，好きなのを試してみてください．

## hyper-overlay
Linuxでは`tilda`とか`guake`とかで採用されている，いわゆるDropdown Terminalの機能を使えるようになる拡張機能です．
↓の動画のように，設定したキーを入力するとすぐにHyperが表示されます．表示されていない時はタスクバーなどにも表示されないので，扱いやすいです．

![](https://media.giphy.com/media/5t7Z5eRMSXuAJJPCrl/giphy.gif)

## hyperpower
実用性があるかわかりませんが，定番のキー入力に合わせてパーティクルがでるアレです．Hyperならこんなこともできる程度に知っておくと良いかもしれません
![](https://media.giphy.com/media/wp0KnC2dBHdygd4AFA/giphy.gif)

# まとめ
もしWSLを使っていて，ターミナルソフトを探しているのであれば，一度Hyperを試してみてください