EmacsのX関係の設定を外部化する

Emacs の X resources 設定

Emacs をX環境でグラフィカルに起動すると、 Emacs はXクライアントアプリケーションとなりますから、 X resources を利用した設定を読み込みます。フォントやウインドウの大きさなどを設定できます。

これらの設定は、Emacs lisp で書く init.el でもできますが、 Emacs はコンソール端末でXウインドウを使わず作業をすることも多いです。そのため、 X resources で設定できるものは、init.elではなくX resources の方に設定しておくというのも一つの考え方です。

また、 init.el でウインドウのサイズを設定すると、一旦標準のサイズで立ち上がってから 改めて設定されたサイズに切り替わるという、ギクシャクした振る舞いになります。resources に設定しておくと、スムーズに起動します(起動時間も多少、早くなるかもしれません)。

設定できるのは、次の例の通り、Xウインドウで動作するEmacsのフォントや、行間(lineSpacing)、ウインドウのサイズ(geometry)などです。設定できる項目の一覧は Table-of-Resources にあります。プログラム名は Emacs にしました1

!! ~/.Xresources
Emacs.font: Noto Sans Mono CJK JP-12
Emacs.lineSpacing: 0
Emacs.geometry: 220x38-80+50
Emacs.cursorBlink: off
Emacs.coursorColor: dark green
Emacs.menuBar: on
Emacs.toolBar: off
Emacs.tabBar: on
Emacs.verticalScrollBars: off
Eamcs.useXIM: off

この設定を有効にするには、ターミナルで

xrdb ~/.Xresources

と打ちます。設定されたか確認するには、

xrdb -query

とします。この設定は logout すると無効になりますから、 Emacs を起動する前に必ず xrdb コマンドを実行しなくてはなりません。通常のXデスクトップ環境でしたら .xinitrc にこの設定をします。WSL では、 .bashrc に書いてしまって良いでしょう。

[[ -f ~/.Xresources ]] && xrdb ~/.Xresources

Emacsでの動作確認

.Xresources に書いた設定が読み込まれるかEmacsで試してみる方法は次のとおりです。

emacs -q

オプションは -Q でなく -q です。 -Q だと Emacs は Xリソースを処理しません2

フォントの確認

Xウインドウで設定したフォントを確認してみましょう。本当は全て等幅になるとよいのですが、なかなか難しい・・・。

| mmmm |
| llll |
| 日本 |
| 漢字 |
| ああ |
| んん |
| ¥¥ |
| \\\\ |
|      |
|      |

|abcdefghijkl|
|ABCDEFGHIJKL|
|'";:-+=/\~`?|
|∞≤≥∏∑∫|
|×±≒≡⊆⊇|  ← GUI だと一部半角になる
|αβγδεζ|  ← GUI だと半角になる
|ηθικλμ|  ← GUI だと半角になる
|ΑΒΓΔΕΖ|  ← GUI だと半角になる
|ΗΘΙΚΛΜ|  ← GUI だと半角になる
|日本語の美観|
|あいうえおか|
|アイウエオカ|
|アイウエオカキクケコサシ|

| hoge                 | hogeghoe | age              |
|----------------------+----------+------------------|
| 今日もいい天気ですね | お、     | 等幅になった👍 🍺|
|----------------------+----------+------------------|