feat: initial PKGBUILD collection for the Moonarch ecosystem

Add PKGBUILDs for moonset-git, moonlock-git, and moongreet-git.
Intended as a paru custom AUR source for easy installation of
all Moonarch components via `paru -S moonset-git`.
This commit is contained in:
nevaforget 2026-03-28 10:29:20 +01:00
commit f169d387d4
8 changed files with 249 additions and 0 deletions

34
README.md Normal file
View File

@ -0,0 +1,34 @@
# Moonarch PKGBUILDs
Arch Linux package builds for the Moonarch ecosystem. Use with [paru](https://github.com/Morganamilo/paru) as a custom AUR source.
## Packages
| Package | Description |
|---------|-------------|
| `moonset-git` | Wayland session power menu |
| `moonlock-git` | Wayland lockscreen with PAM and fingerprint support |
| `moongreet-git` | greetd greeter for Wayland |
## Setup
Add to `~/.config/paru/paru.conf`:
```ini
[moonarch]
Url = https://gitea.moonarch.de/nevaforget/moonarch-pkgbuilds
```
## Install
```bash
paru -S moonset-git moonlock-git moongreet-git
```
## Update
Standard system upgrade picks up new versions automatically:
```bash
paru -Syu
```

19
moongreet-git/.SRCINFO Normal file
View File

@ -0,0 +1,19 @@
pkgbase = moongreet-git
pkgdesc = A greetd greeter for Wayland with GTK4 and Layer Shell
pkgver = 0.3.1.r5.g4c9b436
pkgrel = 1
url = https://gitea.moonarch.de/nevaforget/greetd-moongreet
install = moongreet.install
arch = x86_64
license = MIT
makedepends = git
makedepends = cargo
depends = gtk4
depends = gtk4-layer-shell
depends = greetd
provides = moongreet
conflicts = moongreet
source = git+https://gitea.moonarch.de/nevaforget/greetd-moongreet.git
sha256sums = SKIP
pkgname = moongreet-git

48
moongreet-git/PKGBUILD Normal file
View File

@ -0,0 +1,48 @@
# ABOUTME: PKGBUILD for Moongreet — greetd greeter for Wayland.
# ABOUTME: Builds from git source with automatic version detection.
# Maintainer: Dominik Kressler
pkgname=moongreet-git
pkgver=0.3.1.r5.g4c9b436
pkgrel=1
pkgdesc="A greetd greeter for Wayland with GTK4 and Layer Shell"
arch=('x86_64')
url="https://gitea.moonarch.de/nevaforget/greetd-moongreet"
license=('MIT')
depends=(
'gtk4'
'gtk4-layer-shell'
'greetd'
)
makedepends=(
'git'
'cargo'
)
provides=('moongreet')
conflicts=('moongreet')
install=moongreet.install
source=("git+${url}.git")
sha256sums=('SKIP')
pkgver() {
cd "$srcdir/greetd-moongreet"
git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./'
}
build() {
cd "$srcdir/greetd-moongreet"
cargo build --release --locked
}
package() {
cd "$srcdir/greetd-moongreet"
install -Dm755 target/release/moongreet "$pkgdir/usr/bin/moongreet"
# Greeter config
install -Dm644 config/moongreet.toml "$pkgdir/etc/moongreet/moongreet.toml"
# Cache directories
install -dm755 "$pkgdir/var/cache/moongreet"
install -dm755 "$pkgdir/var/cache/moongreet/last-session"
}

View File

@ -0,0 +1,17 @@
# ABOUTME: pacman install hooks for Moongreet.
# ABOUTME: Sets ownership on cache directory and prints setup instructions.
post_install() {
if getent passwd greeter > /dev/null 2>&1; then
chown greeter:greeter /var/cache/moongreet
chown greeter:greeter /var/cache/moongreet/last-session
fi
echo "==> Moongreet installed."
echo "==> Add moongreet to your greeter compositor command in /etc/greetd/config.toml."
echo "==> Adjust wallpaper: /etc/moongreet/moongreet.toml"
}
post_upgrade() {
post_install
}

21
moonlock-git/.SRCINFO Normal file
View File

@ -0,0 +1,21 @@
pkgbase = moonlock-git
pkgdesc = A secure Wayland lockscreen with GTK4, PAM and fingerprint support
pkgver = 0.4.1.r2.g58c0761
pkgrel = 1
url = https://gitea.moonarch.de/nevaforget/moonlock
arch = x86_64
license = MIT
makedepends = git
makedepends = cargo
depends = gtk4
depends = gtk4-layer-shell
depends = gtk-session-lock
depends = pam
depends = systemd-libs
optdepends = fprintd: fingerprint authentication support
provides = moonlock
conflicts = moonlock
source = git+https://gitea.moonarch.de/nevaforget/moonlock.git
sha256sums = SKIP
pkgname = moonlock-git

51
moonlock-git/PKGBUILD Normal file
View File

@ -0,0 +1,51 @@
# ABOUTME: PKGBUILD for Moonlock — secure Wayland lockscreen.
# ABOUTME: Builds from git source with automatic version detection.
# Maintainer: Dominik Kressler
pkgname=moonlock-git
pkgver=0.4.1.r2.g58c0761
pkgrel=1
pkgdesc="A secure Wayland lockscreen with GTK4, PAM and fingerprint support"
arch=('x86_64')
url="https://gitea.moonarch.de/nevaforget/moonlock"
license=('MIT')
depends=(
'gtk4'
'gtk4-layer-shell'
'gtk-session-lock'
'pam'
'systemd-libs'
)
makedepends=(
'git'
'cargo'
)
optdepends=(
'fprintd: fingerprint authentication support'
)
provides=('moonlock')
conflicts=('moonlock')
source=("git+${url}.git")
sha256sums=('SKIP')
pkgver() {
cd "$srcdir/moonlock"
git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./'
}
build() {
cd "$srcdir/moonlock"
cargo build --release --locked
}
package() {
cd "$srcdir/moonlock"
install -Dm755 target/release/moonlock "$pkgdir/usr/bin/moonlock"
# PAM configuration
install -Dm644 config/moonlock-pam "$pkgdir/etc/pam.d/moonlock"
# Example config
install -Dm644 config/moonlock.toml.example "$pkgdir/etc/moonlock/moonlock.toml.example"
}

17
moonset-git/.SRCINFO Normal file
View File

@ -0,0 +1,17 @@
pkgbase = moonset-git
pkgdesc = A Wayland session power menu with GTK4 and Layer Shell
pkgver = 0.1.0.r8.g934a923
pkgrel = 1
url = https://gitea.moonarch.de/nevaforget/moonset
arch = x86_64
license = MIT
makedepends = git
makedepends = cargo
depends = gtk4
depends = gtk4-layer-shell
provides = moonset
conflicts = moonset
source = git+https://gitea.moonarch.de/nevaforget/moonset.git
sha256sums = SKIP
pkgname = moonset-git

42
moonset-git/PKGBUILD Normal file
View File

@ -0,0 +1,42 @@
# ABOUTME: PKGBUILD for Moonset — Wayland session power menu.
# ABOUTME: Builds from git source with automatic version detection.
# Maintainer: Dominik Kressler
pkgname=moonset-git
pkgver=0.1.0.r8.g934a923
pkgrel=1
pkgdesc="A Wayland session power menu with GTK4 and Layer Shell"
arch=('x86_64')
url="https://gitea.moonarch.de/nevaforget/moonset"
license=('MIT')
depends=(
'gtk4'
'gtk4-layer-shell'
)
makedepends=(
'git'
'cargo'
)
provides=('moonset')
conflicts=('moonset')
source=("git+${url}.git")
sha256sums=('SKIP')
pkgver() {
cd "$srcdir/moonset"
git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./'
}
build() {
cd "$srcdir/moonset"
cargo build --release --locked
}
package() {
cd "$srcdir/moonset"
install -Dm755 target/release/moonset "$pkgdir/usr/bin/moonset"
# Example config
install -Dm644 config/moonset.toml "$pkgdir/etc/moonset/moonset.toml.example"
}