The dotfiles for fuckin' awesome development environment
- macOS 14 or later (Apple Silicon only)
Before anything else, open System Settings > General > Software Update and update macOS to the latest version. On a brand-new Mac (or one that was just reinstalled), the update catalog can be stale and block jumping straight to the latest version — if that happens, install the full installer or step through the intermediate versions it offers first.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/p-chan/dotfiles/main/scripts/install.sh)"By default the repo is cloned to ~/src/github.com/p-chan/dotfiles. To use
another location (CI, a temporary macOS environment, or an existing
checkout), set DOTFILES_DIR:
DOTFILES_DIR="$PWD" bash scripts/install.shinstall.sh records the location as mise's dotfiles.root setting in
home/.config/mise/conf.d/dotfiles-root.toml (machine-local, gitignored),
so plain mise bootstrap invocations need no environment setup afterwards.
To move the checkout later, move the directory and re-run install.sh with
DOTFILES_DIR pointing at the new path.
The shared configuration is always active. Machine-specific behavior is added with one or both of these profiles:
| Profile | Purpose |
|---|---|
desktop |
GUI apps, Dock/Finder preferences, and editor settings |
server |
Always-on power settings for unattended remote operation |
The first install defaults to desktop. Select a headless server or compose
both roles with DOTFILES_PROFILES:
DOTFILES_PROFILES=server \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/p-chan/dotfiles/main/scripts/install.sh)"
DOTFILES_PROFILES=desktop,server \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/p-chan/dotfiles/main/scripts/install.sh)"The selection is persisted as machine-local symlinks under
home/.config/mise/conf.d/, so subsequent mise bootstrap and install.sh
runs preserve it. To change the selection later, run:
DOTFILES_PROFILES=desktop,server \
bash "$DOTFILES_DIR/scripts/configure-profiles.sh" "$DOTFILES_DIR"
mise bootstrapThe server profile disables idle system sleep on AC power and enables restart
after power loss. Its first convergence requires an administrator password; run
mise run bootstrap-server to apply only those settings. Removing a profile
stops managing its settings but does not uninstall packages or restore previous
macOS settings automatically.
Configure applications that require manual setup:
Upgrade Homebrew packages and mise tools.
dots up