Portable configuration for Fedora and macOS machines. The repository keeps shared configuration separate from machine-specific identity, work paths, and desktop integrations.
Clone the repository, then run the platform-specific wrapper:
./scripts/mac_setup.sh # macOS packages and shared configuration
./scripts/fedora_setup.sh # Fedora desktop packages and shared configurationThe common entry point is also available directly:
scripts/bootstrap.sh --profile core
scripts/bootstrap.sh --profile dev
scripts/bootstrap.sh --profile fedora-desktop
scripts/bootstrap.sh --profile mac-guiUse --dry-run to inspect actions and --force to back up existing regular
files before replacing them. Package installation can be skipped with
--no-packages.
The bootstrap does not overwrite Git identity or enable commit signing. Put
machine-specific values in your existing ~/.gitconfig (or another explicitly
included local Git config), for example:
[user]
name = Your Name
email = you@example.com
signingkey = ~/.ssh/id_ed25519.pub
[gpg]
format = ssh
[commit]
gpgsign = trueOptional private Zsh settings belong in
~/.config/dotfiles/zsh/local.zsh. Shared Zsh configuration is installed as
~/.zshrc; pyenv initialization is enabled automatically when pyenv exists.
Desktop themes are Linux/Hyprland-specific. Use make theme on a running
Fedora desktop, or apply a scheme without prompting:
uv run scripts/generate_theme.py --scheme nord
uv run scripts/generate_theme.py --checkmake check runs shell syntax checks and verifies generated theme files.
The repository intentionally does not install Oh My Zsh, pyenv, TPM, or source-built Vim. Install those separately when needed; package installation and configuration deployment should remain independently repeatable.