今年も終わりですね。なんだかんだ色々ありましたが、個人的には総じて悪くない年だったんだじゃないかと思ってます。

多分今年最後の記事ですが、ネタが無いので小ネタでお茶を濁そうかと・・・。

Emacs29での結構重要な変更

私は現在、 native comp + pgtkを利用したい、という理由でEmacsのmasterを適宜ビルドして利用しているのですが、29の開発フェーズに入ってからビルドしなおしたら、なんか画面に違和感を覚えました。

さて、左側がアクティブなバッファ、右側が非アクティブなバッファです。何が違うでしょうか?まぁ見たまんまですが、mode lineのフォントが明らかに異なります。

私は現在フォントとしてはHackGenを愛用しているので、等幅フォントとなっています

これは、Emacs 29において、mode lineをプロポーショナルフォントを利用する、という決定が入ったためらしいです。

https://lars.ingebrigtsen.no/2021/11/24/the-most-controversial-change-in-emacs-history/

↑の記事によると、かつてあったXEmacsでmode lineにプロポーショナルフォントを導入していたらしく(私もその時代はLinuxメインではない)、それがGNU Emacsにも導入されたことによる、ということのようです。

しかし私は等幅でありたい

そもそもプロポーショナルフォントを用意していないので、見た目もよくないしガタガタするし、なので、この設定をさくっと無効化します。

Emacs 29から、mode lineのfaceとして、 mode-line-active というものが追加されています。これが、アクティブな場合のmode lineに対する設定となっています。

これのフォント設定がプロポーショナルなものを利用する、ということになっているので、要はこいつを元々のものに戻してやればいいです。

(leaf *mode-line-face
  :if (version<= "29" emacs-version)
  :config
  ;; mode lineをvariable pitchではなく等幅フォントを利用する。
  (set-face-attribute 'mode-line-active nil :inherit 'mode-line))

プロポーショナルじゃなくてvariable pitchとなっていますが、まぁ実用上はどっちでも一緒です、きっと。

私はleafを利用している & Emacs 28とかでも利用するケースがあるので、バージョン指定を入れてますが、masterしか使わん!という人はバージョン指定を抜いてもよいかと。

masterならではの問題

とりあえずは対処できましたが、こういった(影響のある人にとっては)ドラスティックな変更が入ってくるのも、masterを利用する醍醐味?かな、と思う一時でした。調査と修正自体は10分ちょっとでできたんですが、最初は違和感がある・・・けどなんだ?という感じでしたので。

こういうのがあるとmasterは・・・ってありがちですが、でもnative comp + pgtkはとても快適なので、Wayland環境で生活されている人は是非一度試してみることをお勧めします。

fcitxとかでの入力がうまくできない?らしいので、SKKなりmozcを利用する必要がありますが。

それではよい年末年始をお過ごしください。