Skip to content

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., just for 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 ~/.zshrc directly
  • We skip Homebrew installation of tools Bluefin provides natively
  • We check .isBluefin before defining aliases that Bluefin may already set

Terminal Strategy

  • Linux: Prefer Ptyxis (default on Fedora/Bluefin). You must manually set the profile shell to zsh in Ptyxis preferences.
  • macOS: Use Ghostty (installed via Homebrew Cask)