Skip to content

Packages

dot configures the signed public timmo repository, keeps AUR available as a source-build fallback, and can build and publish mapped private packages into a separate local repository.

dot init runs dot setup-public-repo before resolving public packages. The setup downloads the public key from packages.timmo.dev, requires the pinned full fingerprint F94469C08E3B717014E2815FA026A3671E9151DA, locally signs it in pacman’s keyring, and registers this snippet before the other package repositories:

[timmo]
SigLevel = PackageRequired DatabaseOptional TrustedOnly
Server = https://packages.timmo.dev/$arch

The repository overlays maintained package names. omarchy-pkg-aur-add uses the configured binary repository when a matching package is available and retains AUR resolution for packages or source-build variants not published there. A missing repository database or fingerprint mismatch stops setup before trust or pacman configuration is changed.

dot init installs the Arch and AUR packages listed in .dot-public-packages at the repo root. The file is one package name per line; blank lines and # comments are ignored. Ongoing package health is reported by dot doctor; dot update does not check or install packages. Its pull phase does resync the configured private repository mirror and refresh pacman metadata when that repository is updated.

The list covers shared tooling rather than desktop apps you might install separately, including build helpers, diagnostics, shell and terminal tools, and desktop integrations. Override the path with DOT_PUBLIC_PACKAGES_FILE.

Missing public packages are installed with omarchy-pkg-aur-add; already-installed packages are left in place. When the package list requests the official mise package, init removes the conflicting AUR mise-bin package before installation. dot doctor checks the public repository trust and configuration plus the public and private package lists after setup.

Private packages from .dot-private-packages in the private overlay are installed after the public list during init when the overlay is available. A host-specific .dot-private-packages--<host> list is additive, so hardware-specific packages can be limited to hosts such as desktop.

Terminal window
dot setup-private-repo

Syncs the private Arch package repo mirror, writes the private pacman repo snippet, adds the Include line to /etc/pacman.conf when it is missing, and refreshes pacman metadata. If the local source clone is missing, setup skips cloning only when the configured mirror already contains <repo>.db, <repo>.db.tar.gz, or <repo>.db.tar.zst and pacman registration is current. This supports an already usable local mirror, but publishing still requires the configured source clone to exist. The command repairs Omarchy pacman.conf refreshes that remove local repository includes. Privileged writes prefer pkexec and fall back to sudo.

Terminal window
dot private-pkg-publish <package-name>
dot private-pkg-publish <package-name> --install
dot private-pkg-publish --skip-build --no-git <package-name>

Builds and publishes a mapped private package into the private pacman repo, syncs the mirror, refreshes pacman metadata, optionally installs it, and commits/pushes by default.

FlagEffect
--no-gitSkip the package repo commit and push.
--skip-buildPublish an existing dist package artifact.
--installInstall the published package after syncing the mirror.

Package lists, the repo map, and pacman paths are overridable with environment variables:

  • DOT_PUBLIC_PACKAGES_FILE — public Arch/AUR package list (default $DOTFILES_PUBLIC_DIR/.dot-public-packages).
  • DOT_PUBLIC_PACMAN_REPO_CONFIG — public pacman repo snippet path written by dot (default /etc/pacman.d/timmo.conf).
  • DOT_PUBLIC_PACMAN_MAIN_CONFIG — main pacman config scanned for the public repo include (default /etc/pacman.conf).
  • DOT_PRIVATE_PACKAGE_REPO_FILE — private pacman repo config (default $DOTFILES_PRIVATE_DIR/.dot-private-package-repo).
  • DOT_PRIVATE_PACKAGES_FILE — private package list override (default $DOTFILES_PRIVATE_DIR/.dot-private-packages plus .dot-private-packages--<host> when present).
  • DOT_PRIVATE_PACKAGE_MAP_FILE — package name-to-source map for dot private-pkg-publish (default $DOTFILES_PRIVATE_DIR/.dot-private-package-map).
  • DOT_PRIVATE_PACMAN_REPO_CONFIG — pacman repo snippet path written by dot (default /etc/pacman.d/timmo-private.conf).
  • DOT_PRIVATE_PACMAN_MAIN_CONFIG — main pacman config scanned for the private repo Include (default /etc/pacman.conf).

See Environment Variables for the full list.