yaftを使う

yaft is 何

github.com

Yet Another Framebuffer Terminal の略で、フレームバッファ端末上で動く端末エミュレータ

昔からこの分野には fbterm という有名なソフトがあるが開発は止まっており、最近も更新されているものを探してみたところyaftが出てきたので使ってみた。

何に使うものなの? という人のための雑な説明

デスクトップ向けなLinuxを使っている人は Ctrl + Alt + F2 (or F3, F4, F5, F6)を押してみてほしい。黒い画面になるはずだ(戻すには Ctrl + Alt + F7)*1
こういうのを仮想コンソールといって、それぞれでログインして作業することができる。
また、X Window Systemを入れなければ、仮想コンソールで作業することになる。

なのだけれど、この仮想コンソールではふつう日本語の表示ができない。
でも表示させたいよね、という人に嬉しいソフトがfbtermやyaftである。

ビルド

りどみに書いてあるようにするだけ。C製なのでgccだけあればよさそう。

$ git clone https://github.com/uobikiemukot/yaft.git
$ cd yaft
$ make
$ sudo make install

実行

$ sudo yaft

でとりあえず動く。

一般ユーザーで起動したい場合は、フレームバッファLinuxなら標準で /dev/fb* )へのアクセス権限をユーザーに附与することが必要。

Ubuntuでは /dev/fb* を所有するグループが video なので、

$ sudo gpasswd -a $USER video

してやればよい。

フォント変更

フォントは glyph.h に埋め込まれているので、これを書き換えてビルドし直すことで変更できる。標準はmilkjf.bdfを変換したものらしい。

BDFフォント*2をglyph.hの形式に変換するプログラムが同梱されているので、BDFフォントさえ用意してやればよい。

私はufo.bdfを試してみたが、問題なく使えた。これでUnicode BMPの全文字が表示できる。
github.com

その他

  • 背景画像を表示したりとかいろいろできるらしい(README参照)。
  • Unicode対応はBMPの範囲のみ。まあ、それ以上の範囲をサポートしているBDFフォントもそうそうないけれど……
  • IMには対応していなそうなので、日本語入力はできない。
    • Emacs + ddskk で日本語文書を書くこと自体はできたので、どうしても必要になれば気合で……
    • Issueを見ると、IMを使いたい場合は mlterm-fb に誘導していそう。あくまでyaftはシンプルにということだろうか。
      • これを見て mlterm-fb も試してみたが、こちらは多機能ですごい。ちなみに、mltermはubuntuリポジトリにあるが、これを入れるとmlterm-fb(フレームバッファ版)が入らないので、自分で --witth-gui=fb を指定してビルドする必要がある。
  • (2019/11/20追記)画面の解像度が高すぎて普通のbdfフォントでは文字サイズが合わない場合、bdfresizeというツール(Debian -- jessie の bdfresize パッケージに関する詳細)でフォントを拡大するのもよいかもしれない

*1:このへんは当然設定によって変わるだろうけれど、Ubuntuあたりを普通のPCに初期設定で入れるとたぶんこうなっている。

*2:Unix系OSで使われてきたビットマップフォントの形式のひとつ。