Drops the moongreet dependency and adds the two upstream packages, so pacman lets moongreet go on the clients. moonlock stays: moonset spawns it by name. The reference configs deployed into /etc/greetd/ are now regreet.toml and regreet.css. post_install seeds ~/.config/swaylock/config, pre_upgrade rewrites moonlock to swaylock -f in stasis configs that were seeded before — that file is never overwritten, so an existing install would otherwise keep calling a package on its way out. The moongreet and moonlock PKGBUILD directories stay: the CI only builds what changed, and deleting them would break the build step's cd.
f86d936 — git add aborted on stale sshfsc-git pathspec)
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, Waybar, Catppuccin Mocha) |
moonset |
Wayland session power menu |
corsairctl |
Corsair headset control |
sshfsc |
SSHFS connect helper |
sweet-cursors-git |
Sweet cursor theme |
Greeter and lock screen come from the official repos (greetd-regreet,
swaylock) since 2026-08-14. The moongreet/ and moonlock/ directories are
still here, unbuilt: the CI only builds a PKGBUILD that changed, and moonlock
stays a dependency of moonarch-git until moonset stops spawning it by name.
Setup
The Moonarch installer configures /etc/pacman.conf with:
[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
paru -S moonarch-git # pulls in all ecosystem packages as dependencies
Update
paru -Syu
Version bumps land in the registry automatically:
- A version tag (
v*) pushed inmoonset,corsairctlorsshfsc— or a push onmainofmoonarch, which is a VCS package — triggers the per-projectupdate-pkgver.yaml; pkgver-bot commits a freshpkgverto the matching PKGBUILD here. - 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 — seebuild-and-publish.yamlfor 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.
curl -s https://gitea.moonarch.de/api/packages/nevaforget/arch/moonarch/x86_64/moonarch.db \
| tar -tz | grep <pkgname>
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:
paru -Syu --overwrite=/path/to/conflicting/file