My Terminal Setup

The macOS defaults are fine until you've used something better. Over time I've swapped out a handful of them for tools that are faster or just less annoying to use.

Ghostty terminal

You can find my dotfiles here if you want the same setup.

Ghostty

As you probably noticed from the image, my terminal of choice is Ghostty. I tried a lot of others before landing on it. iTerm2 felt bloated, Alacritty was fine but too minimal, Warp kept trying to be something I didn't ask for. Ghostty hits the right balance. Highly configurable, fast, and has been my daily driver since the beta.

Starship

Starship prompt

Prompt configuration has a way of becoming its own project. Starship avoids that. I set it up once with the things I actually need (current directory, git branch, command duration) and haven't touched it since.

eza

eza directory listing

I have eza aliased to ls so the switch is invisible. You only really notice it when you SSH into something and wonder why ls suddenly looks so ugly.

~/.config/.zshrc
alias ls='eza -l --icons'
alias la='eza -l -a --icons'
alias ld='eza -l -D --icons'
alias ll='eza --icons'

zoxide

zoxide smart directory navigation

Smarter cd. I type part of a directory name and zoxide figures out where I mean. Took about a day to get used to it, and now typing out a full path feels like a punishment.

bat

bat syntax highlighted output

bat is cat with syntax highlighting. Aliased to cat. It also shows git diff markers in the gutter, which comes up more often than I expected. I've had it installed for so long I forget it's not the default.

~/.config/.zshrc
alias cat='bat'

fd

fd is find but I can actually remember how to use it. With find I was Googling the syntax every time. With fd I just type what I want. It also respects .gitignore by default, so searching a project doesn't mean wading through node_modules.

None of these tools are revolutionary on their own. But stacked together, they turn the terminal from something I tolerate into something I actually prefer over any GUI.