Nerd Fonts v3が出ていた
Table of Contents
Nerd Fonts v3が出ていたので、手元のフォントにパッチを適用する話
経緯
先日neovimのプラグインをアップデートしたら、いくつかのアイコンが豆腐になっていることに気づいた。原因を調べたところ、各プラグインでNerd Fontsのアップデートに伴う変更が加わっていた。
Nerd Fontsについて補足を加えておく。Nerd Fonts は開発者にとってはおなじみのアイコンフォントの著名なレポジトリだ。しかし、かねてからそのグリフの当て方に関して議論がなされていた。 というのも、一部のアイコンが本来そのような目的で使うべきでないコードポイント(\U+F500-\U+FD46)に割り当てられていたのである。
Issueのリンク: https://github.com/ryanoasis/nerd-fonts/issues/365
2週間前の5/1、上記の問題点を修正したv3がリリースされる運びとなり、同時にいくつかのアイコンの追加などがされた。
Nerd Fonts v3のアップデートに追随してneovimの各種プラグインもアップデートされていったが、クライアントにインストールされたNerd Fontsは以前のバージョンのまま。当然対応していないアイコンは豆腐のままなので、修正していこうという話。
前提
自分の使っているフォントはCicaという日本語等幅フォントを元に、独自にパッチを当てたフォントだ。
以前Nerd Fontsのリポジトリに同梱されたfont-patcher
でパッチを当てているので、先述のコードポイント(\U+F500~\U+FD46)がグリフで置き換えられてしまっている。今回はその修正も行う。
手順
nerd-fontsのクローン
git clone https://github.com/ryanoasis/nerd-fonts
因みにめちゃくちゃ時間がかかるので、お茶でも飲んで待とう。
fontforgeのインストール
Ubuntuの場合
sudo apt install fontforge
font-patcher実行
font-pacher
はnerd-fonts
リポジトリのルートにポン置きされている。
fontforge -script font-patcher --complete {ターゲットのフォント}
--complete
ですべてのアイコンを適用する
\U+F500~\U+FD46の修正
以前適用してしまったグリフを元に戻す作業。
やることは単純。fontforgeから左のパッチ先(Nerd Fonts v3パッチ済み)と右のパッチ元(オリジナルのフォント)のフォントを開いて、\U+F500~\U+FD46の範囲をコピーするだけ。
別々にフォントファイルを開くと、セッションが異なりコピーができない。 そのため、いずれかのフォントを開いたら上のタブから「ファイル」→「開く」を選択してもう片方のフォントを開く必要がある。
完成したフォントは忘れずシステムにインストールする。
ついでにexa→lsdへの移行
ls
の代替フォントとしてexa
を利用していたのだが、これもNerd Fontsに依存していた。
exaはしばらく2021年からしばらく更新が滞って1おり、Nerd Fonts v3対応もされなそうだったので、これを機に別のツールに移行することにした。
↑exa
ではxmlのフォントのあとにスペースが出力されたり、v2特有の不満点があった。
ということでlsd
をインストールすることにした。
字面が危ないけど、lsd
=LSDeluxeの略だそうで、決して使ってもトリップしたりしない。
インストールはcargo install lsd
で行う。
↑lsd
の出力。xmlのアイコンの不具合が直っている。
おわりに
↑test用に使っていた拡張子
みなさんもNerd Fonts v3で日常を彩りましょう。