Skip to content

jcarter/dotfiles

Repository files navigation

Dotfiles

Managed with chezmoi as a macOS-only dotfiles repo.

What's installed

Terminal & shell

App How
Ghostty Homebrew cask (macOS)
fish Homebrew
Maple Mono NF Homebrew cask (macOS)

Fish plugins via Fisher:

Plugin Purpose
Tide v6 Prompt
autopair.fish Auto-close brackets and quotes
pond Named environment management
fzf.fish Fuzzy-find history, files, processes

Dev tools

Managed by mise (installed via Homebrew):

Tool Version
Erlang latest
Elixir latest
Node latest
Rust latest
Go latest
Herdr latest
Oh My Pi latest

Productivity

App How
Obsidian Homebrew cask (macOS)

Config managed

Tool What's configured
Git Global identity (name + email via chezmoi template), sensible defaults
gh SSH protocol enforced (prevents gh from silently rewriting remotes to HTTPS)
chezmoi Installed via Homebrew so it self-updates with brew upgrade

Everforest theme

All apps share a coordinated Everforest palette that automatically switches between dark and light when macOS appearance changes — no manual toggle needed.

App Dark variant Light variant
Ghostty Everforest Dark Hard Everforest Light Medium
Fish syntax everforest-medium dark everforest-medium light
Tide prompt Full Everforest Dark Medium palette Full Everforest Light Medium palette
Oh My Pi everforest-dark everforest-light

Setup on a new Mac

  1. Run the bootstrap command:

    sh -c "$(curl -fsLS get.chezmoi.io)" -- -b /tmp init --apply gh:jcarter

    gh:jcarter is a chezmoi shorthand for https://github.com/jcarter/dotfiles. The bootstrap binary is installed to /tmp and is cleaned up automatically; Homebrew owns the permanent chezmoi installation.

    You will be prompted for your name and email, then chezmoi will:

    • Install Homebrew
    • Install fish, mise, and ghostty via Homebrew
    • Install erlang, elixir, node, rust, and go via mise
    • Configure git and fish
    • Set fish as your default shell (you will be prompted for your password)

Updating

After pulling changes to the dotfiles repo:

chezmoi update       # pull remote changes and apply

Updating Oh My Pi settings

~/.omp/agent/config.yml is rendered from dot_omp/private_agent/config.yml.tmpl. omp-sync-settings is a small bash helper that reads configured 1Password refs with op read, then replaces matching rendered values in the live OMP config with {{ onepasswordRead "$ref" | quote }} template expressions before writing the source template.

After changing settings through OMP, sync the live non-secret changes back into the template with the helper, then review the rendered result:

omp-sync-settings
chezmoi diff ~/.omp/agent/config.yml

If the diff looks right, apply and commit as normal. If the live changes are not wanted, run chezmoi apply ~/.omp/agent/config.yml instead to restore the rendered version from chezmoi.

Do not run chezmoi add ~/.omp/agent/config.yml for this file. A raw add can copy rendered protected values back into the source and remove the template protection.

To protect another OMP value, add another semantic key -> 1Password ref entry to the helper mapping, such as hindsightApiUrl -> op://Private/Hindsight API/url. Then let OMP write the live value, run omp-sync-settings, and review chezmoi diff ~/.omp/agent/config.yml before committing.

To upgrade chezmoi itself:

brew upgrade chezmoi # or: chezmoi upgrade

Adding new dotfiles

chezmoi add ~/.some_config             # plain file
chezmoi add --template ~/.some_config  # file with template variables

Testing

Run these checks locally on macOS before applying broad changes:

# Diagnose chezmoi configuration and environment issues.
chezmoi doctor

# Confirm template data is available for the current Mac.
chezmoi data

# Preview changes that would be applied to this Mac.
chezmoi diff

# Render sensitive or templated files without writing them.
chezmoi cat ~/.gitconfig
chezmoi cat ~/.omp/agent/config.yml

For a full setup smoke test on the current Mac, review chezmoi diff first, then run chezmoi apply -v.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors