phoenix-power端末でアイコンフォントを表示する方法

i3をカスタマイズするついでに、端末のステータスラインなどをカスタマイズしてみました。

zsh

tmux

i3

Macの場合、fontforgeでフォントを合成しなければなりませんでした。好みのアイコンフォントをダウンロードしてきて、使ってるフォントに合成すればよいです。

1
2
3
4
5
6
$ brew install fontforge
$ fontforge -script script.pe
$ cp Ricomoon.ttf ~/.local/share/fonts
or
$ open Ricomoon.ttf
$ fc-cache -fv

スクリプトは以下の様な感じ。調整がすごい面倒くさいのですが、font-awesomeの場合は、scale0.5にするとちょうどよいです。これはフォントによって異なります。

script.pe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/fontforge -script

family = "Ricomoon"
Open("fontawesome-webfont.ttf")
SelectAll()
foreach
  Scale(50, 50, 0, 0) #横0.5倍、縦0.5倍
endloop
Generate("icomoon-scaled.ttf")
Close()

Open("Ricty.ttf")

MergeFonts("icomoon-scaled.ttf")

SetFontNames(family, family, family, "Regular")
Generate(family + ".ttf")

Close()

アイコンフォントは、例えば以下のように持ってくればよいでしょう。

1
2
$ bower install fontawesome
$ grep -R '*.ttf' .

後は、使ってる端末で設定します。

また、アイコンフォントの表示はターミナルによって変わってきます。例えば、ターミナルでunicodeアジア文字(曖昧)なものを、すべて2バイトで表示する設定を有効にした場合、tumuxpowerlineが連続して表示されることがあります。これを解消するには、現時点ではパッチを当てることで解消できます。

1
2
3
4
5
6
7
8
9
10
11
$ brew edit tmux

  def patches
    [
  "https://gist.githubusercontent.com/waltarix/1399751/raw/695586fad1664f500df9a22622a6ff52c262c3eb/tmux-ambiguous-width-cjk.patch",
  "https://gist.githubusercontent.com/waltarix/1399751/raw/695586fad1664f500df9a22622a6ff52c262c3eb/tmux-do-not-combine-utf8.patch",
  "https://gist.githubusercontent.com/waltarix/1399751/raw/695586fad1664f500df9a22622a6ff52c262c3eb/tmux-pane-border-ascii.patch"
    ]
  end

$ brew reinstall --build-from-source tmux

念のためパソコンを再起動してください。フォントキャッシュの問題やら色々ありますので、再起動したほうが確実で速いです。