Ghostty migration and config

Posting because this took me a little bit too much time searching around. For _years_, like 20, I have used iTerm2 on Macs and it's been fine, but also feels sort of like running a wood chipper to dispose of a few twigs every once in a while. So after listening to an interview with the lead dev for ghostty about zig, I decided to try it out for a bit, to see what it took to replace iT2 and hopefully feel snappier and be less complicated.

ghostty has some nice things built in, like a bunch of common themes, text-based configuration, nice splitting, etc. And it just feels a little lighter, I dunno. The docs are mostly good, but I wanted to make sure that the little bits I need from a terminal on macOS were there, namely:

option + left/right arrow goes to the previous/next word

command + left/right arrow goes to home/end

This isn't really the job of a terminal app to handle per se, but it is the one thing I needed to configure in iTerm2 when I started using macs 20 years ago, the small bit of muscle memory I have with terminals. As it turns out ghostty has ( probably correctly ) no opinion on what to do here, but at least can be configured to behave this way. You should read the previous link for some background, but if you're busy here in all it's glory is my ghostty config, including the important keybind bits:

# macOS friendlyt ghostty config

# Fonts + colours
theme = Dracula+
window-theme = dark
font-size = 15
font-family = Monaco
cursor-style = block
cursor-style-blink = true

# Splitting keybinds
# ( ymmv )
keybind = super+shift+v=new_split:down
keybind = super+shift+h=new_split:right

# 'fix' home / end
# see: https://github.com/ghostty-org/ghostty/issues/2838#issuecomment-2504520648
macos-option-as-alt = true
keybind = cmd+right=text:\x05
keybind = cmd+left=text:\x01
keybind = alt+left=esc:b
keybind = alt+right=esc:f
keybind = shift+cmd+left=previous_tab
keybind = shift+cmd+right=next_tab

# going to specific tabs
keybind = cmd+1=goto_tab:1
keybind = cmd+2=goto_tab:2
keybind = cmd+3=goto_tab:3
keybind = cmd+4=goto_tab:4
keybind = cmd+5=goto_tab:5
keybind = cmd+6=goto_tab:6
keybind = cmd+7=goto_tab:7
keybind = cmd+8=goto_tab:8

# Split visual differentiation
unfocused-split-fill = #1e1e1e