Skip to content

Bootstrap

Jonathan Schlueter edited this page Feb 26, 2026 · 1 revision

Bootstrap

Bootstrap lets you provision a new machine from a declarative config file. Install packages, clone repos, restore dotfiles, and run custom commands — all in one step.

Create a Bootstrap Config

synx --bootstrap-setup

The interactive wizard walks you through:

  1. AUR Helper — detect or choose paru / yay
  2. Packages — select packages to install
  3. Git Repos — repos to clone with optional install scripts
  4. Dotfile Restore — auto-restore dotfiles after setup
  5. Custom Commands — post-install commands (chsh, systemctl, etc.)

The config is saved to ~/.config/synx/bootstrap.conf and backed up to the dotfiles repo at .synx/bootstrap.conf.

Config Format

[aur]
helper = paru

[packages]
list = firefox hyprland waybar kitty rofi-wayland fish starship

[repos]
repo = https://github.com/user/project.git | ~/project | ./install.sh
repo = https://github.com/user/scripts.git | ~/scripts

[dotfiles]
restore = true

[commands]
run = chsh -s /usr/bin/fish
run = systemctl --user enable pipewire

Sections

Section Purpose
[aur] AUR helper to use (paru or yay)
[packages] Space-separated list of packages to install via pacman/AUR
[repos] Git repos to clone, format: url | destination | optional install script
[dotfiles] Set restore = true to auto-run synx -r after setup
[commands] Arbitrary shell commands to run post-install

Bootstrap a New Machine

synx --bootstrap https://github.com/Blumenwagen/dotfiles.git

This will:

  1. Clone your dotfiles repo
  2. Find the bootstrap config in .synx/bootstrap.conf
  3. Show it for review (you can edit it before proceeding)
  4. Execute each step with confirmations

Skip confirmations

synx --bootstrap https://github.com/Blumenwagen/dotfiles.git --yes

Use local config

synx --bootstrap ""

If you pass an empty URL, synx uses the local bootstrap config without cloning.

Review Loop

Before executing, synx shows a summary and gives you options:

  • e — Edit the config in $EDITOR
  • c — Continue with this config
  • q — Quit

Warning: Bootstrap is designed for Arch Linux and Arch-based distributions. It relies on pacman and AUR helpers for package management.

Clone this wiki locally