Installing — what gets put on your Mac
A complete inventory of every CLI tool, app, font, font-icon, window manager, status bar, terminal, and shell that the dotfiles installer puts on your system, plus where each piece lives and how the pieces fit together.
This section is the inventory — what the dotfiles install on your machine. For how to actually run the installer, see Installation. For what questions you’ll be asked first, see Asking important questions. For where the values live once you’ve answered, see Configuration.
The big picture
A full install puts five layers of software on your Mac, in this order:
- Homebrew + Brewfile packages — CLI tools (bat, eza, fzf, jq, atuin, zstd, pv…), language runtimes (nvm, rbenv, openjdk), and the Nerd Font.
- Window manager — your choice: AeroSpace (tiling, i3-style) or OmniWM (BSP/dwindle). You can also pick “none” and keep the macOS default.
- Status bar — SketchyBar, with the Tokyo Night config.
- Terminal + shells — Ghostty as the GPU terminal, both Zsh and Fish set up as primary shells (mirrored configs), Starship as the prompt.
- macOS preferences —
defaults writetweaks for the Dock, Finder, screenshots, telemetry, etc. (See macOS tweaks.)
Each layer is its own install module under install.d/, so you can pick what you want via the interactive picker — see How to install for the controls.
How the install pieces are linked
The install layers depend on each other in this order:
prereqs → configure (wizard) → wm → homebrew → apps
↓
macos
↓
symlinks
↓
launchd
↓
shells
↓
sketchybar
Specifically:
- prereqs runs first, always — installs Xcode Command Line Tools.
- configure runs second, always — asks you the wizard questions and writes
~/.config/dotfiles/local.env. - wm is picked before homebrew because the WM choice decides which
Brewfile.aerospace/Brewfile.omniwmoverlay is also installed. - symlinks is what wires every config in this repo into
~/.config/and~/.local/bin/. See Symlinks. - launchd is conditional — only fires when the wizard answers
HAS_TIMEMACHINE_NAS=trueorENABLE_SORT_DOWNLOADS=true. See Configuration. - sketchybar is last because it needs both the packages (
brew install sketchybar) and the config symlinks already in place.
Where to go next
- Apps & tools — every brew/cask + what each is for.
- Symlinks — how this repo wires into
~/.config/and~/.local/bin/. - Desktop & WM — AeroSpace vs OmniWM, SketchyBar, profile switching.
- Terminal & Shell — Ghostty, Starship, Zsh + Fish.
When you’re ready to actually run the installer, head to Installation.