Skip to content
dots
Esc
↑↓navigate↵open⌘Jpreview
On this page

Topgrade

Topgrade config for the Arch/CachyOS machines, with paru as the package manager, chezmoi re-add before upgrades, and post-upgrade hooks.

Topgrade runs every updater on the machine in one pass: system packages, cargo, firmware, git repos, flatpak, and custom commands. The config is written for a CachyOS (Arch) box running fish; most keys are left at topgrade’s defaults.

Source dot_config/topgrade.toml
Target ~/.config/topgrade.toml
Packages Arch: topgrade (AUR, via paru). macOS: topgrade (Homebrew)

[misc]

Key Value Why
pre_sudo true Caches sudo credentials up front so an unattended run does not stop at a password prompt partway through.
no_self_update true The [cargo] step already updates the topgrade binary; two updaters would fight over it.
cleanup true Runs distro cleanup afterwards (paccache needs pacman-contrib; skipped if absent).
show_distribution_summary true Surfaces *.pacnew / *.pacsave files to merge.
disable ["containers", "config_update"] Skips pulling :latest for every local container image, and skips topgrade’s config-update step.
ignore_failures ["uv", "containers"] Failures in these steps do not fail the run.

The Python pip/conda steps stay off (topgrade’s default), which protects a pinned ROCm build of torch from blind upgrades. A remote_topgrades entry for another host is present but commented out.

[linux]

Key Value Why
arch_package_manager "paru" Pins the Arch backend so topgrade does not fall back to bare pacman, which would skip the AUR.
show_arch_news true Prints archlinux.org news before upgrading; CachyOS tracks Arch, so manual-intervention notices still apply.

The comments around arch_package_manager describe shelly (the CachyOS package CLI) as the intended value, but the active setting is paru. shelly still runs as a post-command (below). A commented shelly_arguments line is kept for reference.

Other steps

Section Key Value Effect
[cargo] git true Also updates git-sourced cargo installs, not only crates.io ones. Needs cargo-update.
[firmware] upgrade false fwupd updates are listed, not flashed, so firmware is reviewed before applying.
[git] (none active) Predefined repos are still pulled; custom repos and arguments are commented out to avoid tripping over dirty working trees.
[flatpak] (none active) User-scope flatpaks update without sudo; use_sudo is commented out.

Pre- and post-commands

Pre-commands run before any upgrade step:

Name Command Purpose
Chezmoi Re-Add chezmoi re-add Pulls local edits to managed dotfiles back into the chezmoi source repo before anything changes them. Only re-adds files chezmoi already manages; review and commit in ~/.local/share/chezmoi afterwards.
GHQ Update see below Updates every ghq-managed repo.
[pre_commands]
"Chezmoi Re-Add" = "chezmoi re-add"
"GHQ Update" = "ghq list | ghq get -u -s"

Post-commands run after everything else:

Name Command
Omp Update omp update
Hermes Update hermes update --backup --yes
Herdr Update herdr update
Shelly Update shelly upgrade-all -n
Cachy Update cachy-update

shelly upgrade-all -n is also available as the sua alias. The post-commands assume CachyOS tooling (shelly, cachy-update) and the owner’s own CLIs (omp, hermes, herdr); on machines without them those steps fail. See omp for the agent CLI.

Was this page helpful?