ghostty: read ~/.config/ghostty-local last, where a machine has one Ghostty had no way to differ per machine. It cannot take the shape the other tools use -- a file beside the linked one -- because link.sh links this whole directory, so ~/.config/ghostty is the checkout itself and a sibling file would be an untracked file in the repo every machine shares. An optional include at the end does the same job: later values replace earlier ones, so a local file overrides anything here, the theme colours included, and its keybinds add to these. Verified against the shipped config: font-size 12 becomes 18 with a local file, back to 12 without, and the config still validates when there is none.
Igor Soarez igor@soarez.org
Mon, 21 Sep 2026 17:18:53 +0300
1 files changed,
10 insertions(+),
0 deletions(-)
jump to
M
config/ghostty/config
→
config/ghostty/config
@@ -47,3 +47,13 @@ auto-update-channel = tip
# Text selection selection-background = #ff5a00 + +# Machine-local overrides, where a machine has any: ~/.config/ghostty-local, a +# file in no repo. Last, so its values win over everything above, the theme +# colours included, and its keybinds add to the ones set here. `?` makes it +# optional, so a machine without one is not an error. +# +# Not a file beside this one: link.sh links this whole directory, so +# ~/.config/ghostty is the repo itself and anything dropped in it would be an +# untracked file in the checkout every machine shares. +config-file = ?~/.config/ghostty-local