Platforms¶
This dotfiles setup targets three platforms: macOS, Debian/Fedora, and Bluefin. All use Homebrew for user-space tools.
General Approach¶
- Prefer system-provided tools where sufficient. Override via Homebrew only when a newer version is needed (e.g.,
justfor newer language features). - Don't overwrite system aliases or configs; integrate with them.
- Ensure the modern CLI toolset works on all platforms, even if installation differs.
Bluefin Integration¶
Bluefin bootstraps its environment via ujust bluefin-cli, which triggers:
ujust bluefin-cli
→ ublue-bling
→ /usr/share/ublue-os/bling/bling.sh # Shell integration (starship, zoxide, eza, bat, etc.)
→ brew bundle --file=/usr/share/ublue-os/homebrew/cli.Brewfile # System Brewfile
The ublue-bling script appends sourcing logic to ~/.zshrc (when run with SHELL=.../zsh), while the system
cli.Brewfile installs common CLI tools via Homebrew.
Our chezmoi config must coexist with both, which is why:
- We use
dot_zshrc.d/modules instead of managing~/.zshrcdirectly - We skip Homebrew installation of tools Bluefin provides natively
- We check
.isBluefinbefore defining aliases that Bluefin may already set
Terminal Strategy¶
- Linux: Prefer Ptyxis (default on Fedora/Bluefin). You must manually set the profile shell to
zshin Ptyxis preferences. - macOS: Use Ghostty (installed via Homebrew Cask)