3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UbuntuMonoRegularのpowerlineフォントがずれる

Posted at

ステータスライン系のプラグインを使っていてUbuntuMonoRegularにpowerlineのフォントパッチをあてた(正確にはパッチをあてたフォントを使った)とき、左側の三角形(右三角)のサイズがいまいち合わなかった。

うまい解決方法が見つからなかったので、フォントを編集することにした。
以下その手順

#パッチをあてたフォントをインストール
パッチをあてたフォントはgithubにある。

$ git clone https://github.com/powerline/fonts
$ cd fonts/
$ ./install.sh
$ sudo fc-cache -vf
$ cp "$HOME/.fonts/Ubuntu Mono derivative Powerline.ttf" ~/

この時点でターミナルのフォントでUbuntu Mono derivative Powerline Regularが選択できる。
フォントファイル自体は ~/.fonts/にある。
.fontsにあるものを直接編集するとなぜかうまくいかないので別のディレクトリにコピーして編集する。

#フォントを編集する
フォントを編集するのにfontforgeを使用する。
※fontforgeの操作法などは筆者自身よく分かってないので最低限のみ説明。

$ sudo apt-get install fontforge
$ fontforge "./Ubuntu Mono derivative Powerline.ttf"

起動したらまず、フォント情報を少しだけ編集する。

メニューバーのエレメント → フォント情報 → 一般情報
EMの大きさが1000になってるのでこれを1024にする。

値を変更してOKを押したら今度は変更する文字を探す。
今回編集したい文字は 左側の三角形(右三角)なので57520番目(uniE0B0)の項目まで移動する。
かなり下の方にある。
image

目的の文字までたどり着いたら綺麗に表示させるためにフォントを編集する。
筆者の環境では右三角のサイズが小さかったため、右クリックでメニューを開き 「変形」を選択する。
image

このウィンドウの「移動」をクリックして「拡大縮小」を選択、倍率を変更してOK。
いろいろ試した結果 X 110 Y 121がいい感じだった。
image

#保存
フォントを編集し終えたら、メニューバーの ファイル → フォントを出力
フォントのタイプをTrueTypeにする。
編集中のフォントファイルを上書き保存するのでUbuntu Mono derivative Powerline.ttfを選択。

保存を押す → 上書き確認が出てくる → 上書き → Errors detectedが出てくるが気にせず保存。

#フォント適用
保存した.ttfファイルを~/.fonts/にある同名のファイルと入れ替える。

$ cp "$HOME/.fonts/Ubuntu Mono derivative Powerline.ttf" ~/.fonts/
$ sudo fc-cache -vf

ここまでしたら、一度全ての端末を閉じる。
再度端末を開いてフォントを Ubuntu Mono derivative Powerline Regular に変更。

これで綺麗に表示される。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?