nevaforget 3b4eb336d6
Build and publish packages / build-and-publish (push) Successful in 14s
feat(moonarch-git): depend on greetd-regreet and swaylock
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.
2026-08-14 16:39:25 +02:00

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:

  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.

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
S
Description
No description provided
Readme
334 KiB
Languages
Shell 100%