xshoji's blog

Ghostty の設定を別ファイルで管理し、Gitでバックアップ・同期しやすくする方法

#ghostty #config #management #mac

最近流行ってるターミナルエミュレーター Ghostty を使い始めました。設定をテキストでカスタマイズできるのがとても魅力的です。ただ、 Settings から直接設定を書き換える方法だと、アプリが管理してるデフォルトの設定ファイルへ内容が書き込まれてしまうため、バックアップや他の端末との同期が困難です。

そこで今回は、 config-file という設定項目を使った Ghostty の設定管理方法を紹介します。 具体的には、以下のような構成にすることで、カスタマイズした Ghostty の設定を別ファイル管理にし、そちらをGit管理にすることでバックアップや他端末と簡単に同期させられるようにしています。

デフォルトのGhostty設定ファイル
→ 「カスタム設定ファイル」へのファイルパスを指定

カスタム設定ファイル(Git管理下に置く)
→ 具体的なカスタマイズの設定内容を記述

詳しく説明

まず、カスタマイズした設定を保存するディレクトリを用意します。 このディレクトリはGit管理下においておき、可能なら Github.com などのリモートリポジトリで管理できると便利です。

そして、このディレクトリに Ghostty のカスタマイズしたい設定を書いたconfigファイルを作成します(このファイルが設定ファイルの実体となります)。例えば、以下のような内容にします。

$ cat "/Users/user/Develop/ghq/github.com/xshoji/ghostty-config/custom_config"
#--------------------
# Common configuration settings
#--------------------
# Set terminal title to a single space to hide it
title = " "

次に、Ghostty のアプリを起動し、メニューバーの「Ghostty」から「Settings」を開きます。このデフォルトの設定ファイルへ config-file の設定を使って、先ほど作成したカスタム設定ファイルへのパスを指定します。

$ cat "/Users/user/Library/Application Support/com.mitchellh.ghostty/config" |tail -n 2
# この一行だけ最後の行に追加する
config-file = "/Users/user/Develop/ghq/github.com/xshoji/ghostty-config/custom_config"

最後に、メニューバーの「Ghostty」から「Reload Configuration」を選択して設定を反映させます。

この構成にすることで、Ghostty は起動時にカスタマイズした設定ファイルを読み込むようになります。以降は

  • /Users/user/Develop/ghq/github.com/xshoji/ghostty-config/custom_config

を編集して設定を変更し、Gitで管理・同期します。

GhosttyのConfig関連の基礎知識

file-location - Configuration
https://ghostty.org/docs/config#file-location

Ghosttyの設定ファイルは、Macの場合は以下のディレクトリに保存されています。

~/Library/Application Support/com.mitchellh.ghostty/config

さらに、以下のパスにConfigファイルがあることで最初にそちらを読み込むようになっているようです。

~/.config/ghostty/config

ドキュメントを読むと

If both locations exist, they are loaded in the order above with conflicting values in later files overriding earlier ones. Configuration is optional and if no configuration file is found, Ghostty will use its defaults.

両方の設定ファイルが存在する場合、上記の順序で読み込まれ、 後のファイルで指定された値が前のファイルの値を上書きします。 設定は任意であり、設定ファイルが存在しない場合、Ghostty はデフォルト設定を使用します。

と書かれており、 上記の順序で読み込まれ の部分は

  1. ~/.config/ghostty/config が最初に読み込まれ
  2. 次に ~/Library/Application Support/com.mitchellh.ghostty/config が読み込まれる(設定が被ったら後勝ち)

の意味です。

今回紹介した config-file の設定を使う方法は、後者の ~/Library/Application Support/com.mitchellh.ghostty/config の中身を別ファイルに委譲する形にする、ということになります。