Chienomi

Powerlevel9k * モリサワフォント

zsh

Zsh * Powerlevel9k を使っていて、なおかつモリサワパスポートユーザーである人なんて多分この世に数えるほどしかいないと思うので、需要は限りなく0に近い記事を書かせてもらうことにする。

Powerlevel9kで使われるU+F015(ホームマーク)やU+F17C(Linuxマーク)はPrivate Use(外字)領域であり、 文字として定義されていない。 そして、モリサワフォントはこの領域を使用しており、U+F015は「言信」という文字(実際は一文字)に割り当てられており、 モリサワフォントを導入するとAwesomeフォント(Nerd font)に優先されてしまうため、有効に機能せず、文字化けしてしまう。

解決方法は結構シンプルで、FontConfigで

<match target="pattern">
    <test qual="any" name="family">
        <string>Anonymous Pro</string>
    </test>
    <edit binding="strong" name="family" mode="prepend">
        <string>Anonymous Pro</string>
        <string>TerminessTTF Nerd Font</string>
        <string>Cica</string>
    </edit>
    <edit binding="strong" name="spacing" mode="assign">
        <int>90</int>
    </edit>
</match>

のようにしてNerd fontをprependするだけである。

この問題のハマりポイントは、「Nerd fontのグリフを持っているCicaを指定したときにNerd fontグリフ部分を使ってもらえない」ことである。 だから、Cica一本に頼っていた場合はNerd Fontを別途導入する必要がある。