あなたが落とした monokai テーマとターミナルの真の姿

ああっ！　あなたはうっかり [monokai](https://github.com/topics/monokai-theme) テーマを泉の中に落としてしまった！！

「そ、そんな……！　おらの monokai テーマが……！！」

あなたは地面に手をつき、必死で泉の水を掬ったが……
monokai は、泉の底へと沈んでいったようだった。

# そのとき、泉の上に光の窓が現れた

窓から光が溢れ出し、光は人の姿を象った。
頭上には光の輪が燦然と輝いている。背からは翼が生えていた。

『……ますか……聞こえていますか』
『今、あなたの心に直接呼びかけています……』

「め、女神様？！」

## 女神はあなたに問いかける

『あなたが落としたのは、赤の monokai ですか』

<img width="720" alt="Screen Shot 2020-05-09 at 3.52.39 1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/1d3fe531-0213-d3b9-8608-7d80b80c5bd3.png">

『黄色の monokai ですか』

<img width="720" alt="Screen Shot 2020-05-09 at 3.52.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/78d01b75-fb4c-c50c-5950-206881f69dc8.png">

『それとも、茶色の monokai ですか』

<img width="720" alt="Screen Shot 2020-05-09 at 3.52.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/9ef6f07d-2152-fbe0-2f01-de06f18cbc52.png">

## どれが本当の monokai なのか？

「女神様」
「おらが落とした monokai は、その中にはありませんですだ」

『……そうですか。お役に立てず、申し訳ありません』

女神は残念そうに答えた。
あなたは女神を落胆させたことを申し訳なく思った。

「そんな、とんでもねぇですだ」

あなたは慌てて首を振った。
そして、スラスラと地面へ monokai テーマを描きつけた。

「おらが落とした monokai は、こんな感じでしただ」

<img width="720" alt="Screen Shot 2020-05-09 at 3.56.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/c0561357-839c-4afa-ad23-783a6de94d12.png">

『……これ、は……』

「黒の monokai ですだ」

4 つ目の monokai である。
女神はしばし待つように告げ、窓を通ってどこかへと向かっていった。

## 真の monokai とは

再び窓から女神が姿を現した。

『お待たせしましたね』
『これが、真の [monokai-emacs](https://github.com/oneKelvinSmith/monokai-emacs) の姿です』

<img width="400" alt="monokai_0.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/b7d9266b-b96f-32d1-b063-1e564dbb6248.png">

「これは……茶色の monokai ですだ」

『そう、 **monokai は黒くありません**』
『あなたには、真の **24bit 色のサポート** が必要なのです』

### 真実の試練と terminfo

『あなたに [truecolor_test](https://gist.github.com/XVilka/8346728) を授けましょう』

```sh:truecolor_test
#!/usr/bin/env bash
awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'
```

あなたは丁寧に `truecolor_test` を受け取り、自分の `bin` の中にしまった。

あなたはいそいそとターミナルを取り出した。
そして `tmux` に接続し、 `truecolor_test` を呼び出した。

<img width="552" alt="Screen Shot 2020-05-09 at 5.31.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/64288894-2ad5-24d9-c5bb-dc33d92858e6.png">

『このスペクトル……壊れていますね』

「そんな……」

『あなたには、 [xtermi-24bit](https://github.com/syl20bnr/spacemacs/wiki/Terminal) が必要なのです』
『この窓からリンク ↑ を辿り、真のターミナルを手になさい』

あなたは女神に導かれ、光の窓を通り抜けた。

そこは Spacemacs の世界だった。
世界の端で、あなたは真なる 24 bit color を目にし……

そして、それを元の世界へと持ち帰ったのだった。

### 真のターミナルが、 tmux へと繋がれるとき

_True color_ を描くためには、 `xterm-24bit` を手に入れた上で、
ターミナルの `TERM` 値と `tmux` の `default-terminal` を
`xterm-24bit` に設定する必要がある。

あなたは `TERM` 値を `xterm-24bit` に設定した。
そして、 `~/.tmux.conf` を書き換えた。

```conf:.tmux.conf
set -g default-terminal "xterm-24bit"
set-option -ga terminal-overrides ",$TERM:Tc"
```

すると、 `truecolor_test` が、カタカタと震え始めた。
今こそ己を解放せよと、呼びかけてくるかのようだった。

——応えてくれるのか。
あなたが `truecolor_test` を起動すると、大地が揺れた。

「女神様、おら……」

<img width="600" alt="Screen Shot 2020-05-09 at 5.38.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/e2315584-cc3b-41de-507d-e496d0a66259.png">

あなたの前で、初めてターミナルが真の姿を現していた。
そして、あなたが Emacs を起動したとき……

<img width="720" alt="Screen Shot 2020-05-09 at 3.52.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/b1b53d5a-dae0-5740-725b-120d15a79626.png">

そこには真の monokai の姿があった。

### でも女神様

「この monokai 黒くないですだ」

『それが真の monokai の姿なのです』

「……」

# そのとき、はたと女神は気がついた。

『`echo -e "\e[3mfoo\e[23m"` してごらんなさい』

「え？」

『 `echo -e "\e[3mfoo\e[23m"` するのです』

あなたはせっせと `echo -e "\e[3mfoo\e[23m"` した。

<img width="360" alt="Screen Shot 2020-05-09 at 5.04.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/5bd90df0-316a-f373-dcfd-3123a6ffb86b.png">

『なんということでしょう……』

「め、女神様。おら、何か悪いことをしてしまったのでしょうか」

## 真のフォントの姿とは

『斜体です』

「え？」

『斜体が出なければならなかったのです』
『あなたのフォントを見せてご覧なさい』

「は、はい。 [Sauce Code Pro](https://github.com/ryanoasis/nerd-fonts) を使っておりますだ」

<img width="887" alt="Screen Shot 2020-05-09 at 5.04.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/d35021d6-0759-4f41-ae86-f94a6fda8e20.png">

「このフォントで……あれ？」

『気づいたようですね。あなたのフォントは **欠損** しています」

## 再インストールするのです

『復旧できますか?』

「やってみますだ！」

あなたはおもむろに `'Sauce Code Pro'` を `find` すると、
つらつら呪文を書きつけた。

```sh
$ rm /System/Volumes/Data/Users/toy/Library/Fonts/Sauce\ Code\ Pro*
$ brew tap homebrew/cask-fonts
$ brew cask reinstall font-saucecodepro-nerd-font
```

「で、できた……！」

<img width="864" alt="Screen Shot 2020-05-09 at 5.08.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/ada4b4be-05e2-512b-5167-32ad96c7d0c7.png">

「これで……これで……！！」

<img width="384" alt="Screen Shot 2020-05-09 at 5.57.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594390/58f7883f-7ceb-ced0-4d76-661c0c12daf5.png">

_**foo~~~~~~~~!**_

あなたは最高潮の気分で女神の方へ向きなおった。
だが、女神の姿は徐々に薄れていくのだった。

# 光の窓が閉じていく

「そんな、女神様……！　おら、まだ女神様に助けてもらわねぇと……！」

女神の姿は、煙が広がっていくかのように
この世から失われつつあった。

『私の助けなど、大したものではありません。あなたを救ったのはあなた自身 [^1] です』
『あなたなら、自分の足で歩めるでしょう』

「女神様……！　おら……おら、このフォント、大事しますだ！！」

光が空に溶けていく。
光の粒が 1 つ残らず散った後でも、あなたはしばらく泉が映す景色を眺めていた。

やがてあなたが泉の前から去ったとき、
あなたは以前よりも強くなっていたのだった。

[^1]: 女神は、あなたが [Darkokai](https://github.com/sjrmanning/darkokai) を拾ったことを知っていた。