# Moonarch PKGBUILDs PKGBUILDs for the Moonarch ecosystem. Published as prebuilt Arch packages via the Gitea Package Registry at `gitea.moonarch.de`. ## Packages | Package | Description | |---------|-------------| | `moonarch-git` | Desktop environment defaults (Niri, Quickshell, Catppuccin Mocha) | | `corsairctl` | Corsair headset control | | `sshfsc` | SSHFS connect helper | | `sweet-cursors-git` | Sweet cursor theme | Greeter, lock screen and power menu are no longer own packages since 2026-08-14: `greetd-regreet` and `swaylock` come from the official repos, the power menu is a Quickshell popout shipped inside `moonarch-git`. The `moongreet/`, `moonlock/` and `moonset/` directories are still here, unbuilt — the CI only builds a PKGBUILD that changed, so they cost nothing and keep the way back open. ## Setup The Moonarch installer configures `/etc/pacman.conf` with: ```ini [moonarch] SigLevel = Required DatabaseOptional Server = https://gitea.moonarch.de/api/packages/nevaforget/arch/$repo/$arch ``` No extra paru setup required — `pacman` and `paru` both resolve moonarch packages from the registry. ## Install ```bash paru -S moonarch-git # pulls in all ecosystem packages as dependencies ``` ## Update ```bash paru -Syu ``` Version bumps land in the registry automatically: 1. A version tag (`v*`) pushed in `moonset`, `corsairctl` or `sshfsc` — or a push on `main` of `moonarch`, which is a VCS package — triggers the per-project `update-pkgver.yaml`; pkgver-bot commits a fresh `pkgver` to the matching PKGBUILD here. 2. That commit triggers `build-and-publish.yaml` (this repo): the runner builds every changed PKGBUILD and uploads the artifacts to the Arch registry. Before each upload all existing versions of the package are deleted so the repo DB stays clean — see `build-and-publish.yaml` for the rationale (zombie DB entries after pkgver changes). `sweet-cursors-git` has no upstream CI; bump its `pkgrel` manually when a rebuild is needed. ## Troubleshooting **`paru -Syu` shows no update even though a new version was published**: check the repo DB has the new version. ```bash curl -s https://gitea.moonarch.de/api/packages/nevaforget/arch/moonarch/x86_64/moonarch.db \ | tar -tz | grep ``` If only an old version appears there, the `build-and-publish` workflow did not run cleanly — inspect the latest run under `gitea.moonarch.de/nevaforget/moonarch-pkgbuilds/actions`. **File conflict on install** (`foo/bar exists in filesystem`): the file was placed manually before the package claimed ownership. Once: ```bash paru -Syu --overwrite=/path/to/conflicting/file ```