Using M+ Bitmap Font on Xquartz (X11)

2016-07-17 07:07:40

Xquartz で動いている xterm で M+ Bitmap Font を使う。

日本語環境を整える

日本語入力のために MacUIM をいれる。 anthy-utf8 を選択して、xquartz を立ち上げる。

起動時に次のものを立ち上げる必要があるので、 .xinitrc にでも書いておく。 あと必要な環境変数も。

$ cat .xinitrc
/Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim &
export LANG="ja_JP.UTF-8"
export XMODIFIERS=@im=uim
export GTK_IM_MODULE=uim

M+ Bitmap Font のインストール

http://mplus-fonts.osdn.jp/mplus-bitmap-fonts/ ここからダウンロードして、インストールする。

urxvt だとこのままでいいが、xterm で使いたいとなると、 JISからUCS-2 (ISO-10646)に変える必要がある。

ユニコードでエンコードしたmplusフォントの作り方 の手順を参に進めていく。

$./jis2unicode -b < mplus_j10r.bdf > umplus_j10r.bdf
$ cat mplus_f10r.bdf >> umplus_j10r.bdf 
$ vi ./umplus_j10r.bdf
$ bdftopcf umplus_j10r.bdf | gzip > umplus_j10r.pcf.gz

編集前後の diff とったらこんな感じ。 ENDFONTS を探して結合部分のヘッダをまるごと削除する必要もある。

2c2
< FONT -mplus-gothic-medium-R-normal--10-100-75-75-C-100-jisx0208.1990-0
---
> FONT -umplus-gothic-medium-R-normal--10-100-75-75-C-100-iso10646-1
7c7
< FOUNDRY "mplus"
---
> FOUNDRY "umplus"
19,20c19,20
< CHARSET_REGISTRY "jisx0208.1990"
< CHARSET_ENCODING "0"
---
> CHARSET_REGISTRY "iso10646"
> CHARSET_ENCODING "1"
30c30
< CHARS 6963
---
> CHARS 7187

フォントを読み込む

適当なところに置いて、 .xinitrc に書いておく。

xset +fp ~/.fonts/mplus
xset +fp ~/.fonts/umplus
xset fp rehash

フォントが使えることを確認する。

$ xlsfonts | grep umplu
-umplus-gothic-medium-r-normal--0-0-75-75-c-0-iso10646-1
-umplus-gothic-medium-r-normal--10-100-75-75-c-100-iso10646-1
-umplus-gothic-medium-r-normal--12-120-75-75-c-120-iso10646-1

xterm 設定

wideFont で結合したフォントを指定しておく。 ペースト用の設定もいれておく。 ロケールは明示的に指定する必要があった。

XTerm*locale: utf-8

XTerm*font: -mplus-fxd-medium-r-normal--10-100-75-75-c-60-iso8859-1
XTerm*wideFont: -umplus-gothic-medium-r-normal--10-100-75-75-c-100-iso10646-1
XTerm*ximFont: -mplus-gothic-medium-r-normal--10-100-75-75-c-100-jisx0208.1983-0

*VT100.translations: #override Meta <KeyPress> V: insert-selection(PRIMARY, CUT_BUFFER0) \n

改善したいところ