macOS (Apple Silicon / Intel) terminal environment — the OS-native layer of a
nine-repo dotfiles system. The shared Core (zsh modules, tmux, Neovim, git,
mise, starship, clipboard) is vendored under core/ as a git subtree from
dotfiles-core; this repo adds only what is specific to macOS.
Identity of the operator lives in Core. Identity of the machine lives here. Offensive/engagement tooling lives in
dotfiles-Kali— not here.
bootstrap.sh Homebrew + brew bundle + symlink wiring (idempotent)
Brewfile macOS packages (CLI + casks + fonts) ← you provide
core/ vendored Core subtree (do not edit here; edit dotfiles-core)
os/
macos.zsh interactive shell extras → ~/.config/zsh/os.zsh
macos.gitconfig osxkeychain + excludes + gpg → ~/.config/git/os.gitconfig
macos.gitignore global git excludes → ~/.config/git/ignore
macos.conf tmux en0 + battery bits → ~/.config/tmux/os.conf
zsh/
zshenv → ~/.zshenv (sets ZDOTDIR + XDG + universal env)
zprofile → ~/.config/zsh/.zprofile (Homebrew, juliaup, 1Password agent)
zshrc → ~/.config/zsh/.zshrc (history + completion + the loader)
macos/
defaults.sh `defaults write` system prefs (opt-in) ← you provide
ssh/
config SSH client config (keys never tracked) ← you provide
git clone <your-remote>/dotfiles-MacBook ~/dotfiles-MacBook
cd ~/dotfiles-MacBook
git subtree add --prefix=core <your-remote>/dotfiles-core main --squash # one-time
./bootstrap.sh # Homebrew + brew bundle + symlinks
exec zsh
./bootstrap.sh --macos-defaults # optional: apply system prefs (may need logout)Flags: --links-only (just symlinks), --no-brew (skip Homebrew/bundle),
--macos-defaults (also run macos/defaults.sh).
~/.zshenv sets ZDOTDIR=~/.config/zsh, so the rest of zsh lives there.
.zprofile (login) sets Homebrew/PATH; .zshrc (interactive) runs compinit
then sources, in order:
tools → aliases → functions → fzf → bindings → plugins → op → os → local
tools…op are Core; os is os/macos.zsh; local is your untracked
~/.config/zsh/local.zsh. The order matters — see the comments in zshrc.
Edit in dotfiles-core, then from there run ./bin/sync-core.sh, or here:
git subtree pull --prefix=core <your-remote>/dotfiles-core main --squash
./bootstrap.sh --links-only- Homebrew lives at
/opt/homebrew(Apple Silicon) or/usr/local(Intel);.zprofilehandles both. - Clipboard is native — Core's
clip/clip-pasteshell out topbcopy/pbpaste. - 1Password SSH agent —
.zprofilepointsSSH_AUTH_SOCKat the 1Password socket; comment it out if you don't use it. - Credentials — git uses the macOS keychain via
osxkeychain.