かってきままな日々
2020-04-16 (Th) [長年日記]
_ Emacs のフォント設定をいじる
NasuM を使ってたんだけど、これだけじゃ Color Emoji が表示されないんだよな…
てなわけで、fc-cat を実行した結果から、フォントが持ってる文字の文字コードを 割り出して、Emacs Lisp として出力するコードを Emacs Lisp で書いた。
…が、NasuM は文字が歯抜けになっていて、文字コードの範囲がたくさんできてしまう。 NasuM の方は大雑把に括って、Noto Color Emoji の方はある場所だけ set-fontset-font するようにした。
Emacs 起動ごとに fc-cat してると遅いので、 まずは Emacs が起動した状態で
- fc-cat してパースして、欲しいフォントについて、 S式をフォントごとに新しいファイルに出力する
- 目視で中身を確認して、rename する。 (この時点で、NasuM は rename せずに大雑把な手作りを残す)
で、Emacs 起動時には
- 上で作った S式をファイルから読み込む
- フォントごと、文字コード範囲ごとに set-fontset-font する
さらに、欲しい機能として、キー操作で文字サイズを大きくしたり 小さくしたりしたいので、
- set-fontset-font する時には
:size
を指定 - サイズを変更する時には、「フォントごと、文字コード範囲ごとに set-fontset-font する」をやりなおす。
今、この最後の項目を、全 frame に対して行っているので、frame ごとにしたい、ってのが課題。
ちなみに、探しててなかなか見つからなかったので、メモ。 ファイルに保存してある S式を評価して結果を得る方法。
(with-temp-buffer
(insert-file filename)
(read (current-buffer)))
こんなんで良し。 load とか eval とかで探してたから全然見つからなかった。 この辺の関数は nil や t を返すんだよね。 read なら結果を返してくれた。
_ macOS で nfs トラブルが発生
macOS を Catalina に上げてから、vagrant 内から nfs mount しようとしても できない、という症状が発生。 数分後に手動で mount してやるとできる、というおまけ付き。 どう考えてもどこかで timeout してる症状。
vagrant の issue を漁りまくったり、/etc/nfs.conf をいじったりしても、 なかなか解決せず。
nfsd を restart した後、2分ほど rpcinfo に mountd が現れない。 2分経つと現れて、その瞬間、mount 可能になる。
mount できない間、以前 mountd がいたところの udp port にパケットが飛んでる。
macOS に log stream --style=syslog
なんていうコマンドがあるのを知った
ところから話が進み始めた。
mount 可能になるその瞬間、エラーがログに出力されていた。
couldn't register NFS/TCP service
だったかな。
それなら話は早いわけで。TCP を使わないようにすればいい。 /etc/nfs.conf に以下のように設定。
nfs.server.tcp = 0
これで解決。
ただし、何故 register できないのか、そこの根本原因はわからないままだけど。 これで nfsd も mountd も TCP で register されなくなった。
nfs.conf に何も書かない時でも nfsd は tcp も udp も register できてた。 できてなかったのは mountd。つまり mountd の tcp を register しようとして できなかったってこと? エラー吐いた後、それでも mountd は udp のも tcp のも 登録できてる。別の register 情報でリトライして成功したってこと? register ようとした情報までは出力されていないので、 これ以上はわからないかな。
register って portmap への register のことだよね。 面倒くさくてたまらんわ。