💨

Alacrittyの設定をローカル別に反映させる

2022/03/30に公開約1,800字

私はターミナルにAlacrittyを使ってます。
Alacrittyは高速で動作し、クロスプラットフォーム対応しています。
また設定がymlファイルで記述するため、dotfilesでの管理もしやすいです。

しかし、ローカルごとに例えばフォントサイズを調整したりテーマを変えたいとき、変更するだけなら各ローカルの設定ファイルを変更するだけなのですが、dotfilesなどをGitHub等で管理していると差分になり、同期先にはローカルの設定を反映したくないときに少し不便です。
そこでGitHubで管理しているファイルは変更せずに、ローカルの設定を反映できるようymlファイルを変更しました。

環境

$ alacritty --versio
alacritty 0.10.1

設定ファイル

結論から言えば設定にあるimport機能を使います。
設定ファイルを見ると先頭の方にコメントアウトされているのでコメントアウトを解除して
importのpathに、別の設定用のymlファイルがあるpathを記載すれば読み込まれます。

alacritty.yml
#
# All imports must either be absolute paths starting with `/`, or paths relative
# to the user's home directory starting with `~/`.
- #import:
- #  - /path/to/alacritty.yml
+ import:
+   - /path/to/alacritty.yml

env:
  TERM: xterm-256color

window:
  dimensions:
    columns: 150
    lines: 40

ただし、importで読み込んだファイルの内容は先に反映されるので、ローカルの設定ファイルをここに書くだけでは、import以下に記載されている内容が上書きされてしまいます。
よって更に変更して、GitHubで管理したいデフォルトの設定をalacritty_default.yml、ロカールの設定ファイルをalacritty_local.ymlとします。
例としてfontのサイズを変更したいとして下記のように修正します。

alacritty.yml
# このファイルにはimportのみ記載する
import:
-   - /path/to/alacritty.yml
+   - /path/to/alacritty_default.yml
+   - /path/to/alacritty_local.yml

- env:
-   TERM: xterm-256color
-
- window:
-   dimensions:
-     columns: 150
-     lines: 40
-
- font:
-   size: 17
alacritty_default.yml
# このファイルにはGitHubで管理したいデフォルトの設定を記載する
+ env:
+   TERM: xterm-256color
+ 
+ window:
+   dimensions:
+     columns: 150
+     lines: 40
+
+ font:
+   size: 17
alacritty_local.yml
# このファイルにはGitHubで管理したくないローカルの設定を記載する
+ font:
+   size: 20

上記のようにするとimportは上から読み込まれていくのでローカルの設定が上書きされて、ローカルの設定が反映されます。
GitHubではalacritty.ymlalacritty_default.ymlを管理すればローカルの設定を変更しても差分になりません。
このimport機能はパス先に設定ファイルがない場合はスキップしてくれるので、ローカルの設定が必要ない場合に読み込みのエラー対策で空の設定ファイルを用意しなくてもエラーにもなりません。

Discussion

ログインするとコメントできます