All checks were successful
Build and publish packages / build-and-publish (push) Successful in 18s
Gitea's Arch registry doesn't regenerate the repo DB on pkgver change — old entries linger as zombies (e.g. moonarch-git r99 stuck in moonarch.db even though only r105 exists as a package). List all versions of each built package and DELETE them before the upload so the DB gets rebuilt cleanly. Bump moonarch-git pkgrel to force a rebuild and exercise the fix.
212 lines
7.0 KiB
Bash
212 lines
7.0 KiB
Bash
# ABOUTME: PKGBUILD for Moonarch — desktop environment defaults for Niri + Catppuccin Mocha.
|
|
# ABOUTME: Deploys XDG configs, helper scripts, zsh defaults, wallpaper and moonarch-update.
|
|
|
|
# Maintainer: Dominik Kressler
|
|
|
|
pkgname=moonarch-git
|
|
pkgver=r105.f4f6ede
|
|
pkgrel=8
|
|
pkgdesc="Moonarch desktop environment defaults — Niri, Waybar, Catppuccin Mocha"
|
|
arch=('any')
|
|
url="https://gitea.moonarch.de/nevaforget/moonarch"
|
|
license=('MIT')
|
|
install=moonarch.install
|
|
|
|
depends=(
|
|
# Compositor & session
|
|
'niri'
|
|
'greetd'
|
|
|
|
# Bar & notifications
|
|
'waybar'
|
|
'swaync'
|
|
|
|
# Terminal
|
|
'foot'
|
|
|
|
# Clipboard
|
|
'cliphist'
|
|
'wl-clipboard'
|
|
|
|
# Display
|
|
'kanshi'
|
|
|
|
# Audio
|
|
'pipewire'
|
|
'wireplumber'
|
|
'pipewire-pulse'
|
|
'alsa-utils'
|
|
'pavucontrol'
|
|
|
|
# Theming
|
|
'ttf-ubuntusans-nerd'
|
|
|
|
# System utilities referenced by helper scripts
|
|
'brightnessctl'
|
|
'jq'
|
|
'libnotify'
|
|
'upower'
|
|
'polkit-gnome'
|
|
'bluez-utils'
|
|
|
|
# Shell
|
|
'zsh'
|
|
|
|
# PipeWire extras for XDG config
|
|
'pipewire-alsa'
|
|
'pipewire-jack'
|
|
'gst-plugin-pipewire'
|
|
)
|
|
|
|
optdepends=(
|
|
# Moonarch ecosystem (install via paru from AUR/local builds)
|
|
'moongreet-git: greetd greeter'
|
|
'moonlock-git: Wayland lockscreen'
|
|
'moonset-git: session power menu'
|
|
|
|
# AUR packages (install via paru)
|
|
'walker-bin: application launcher'
|
|
'elephant-bin: walker search daemon'
|
|
'awww: wallpaper daemon (swww alternative)'
|
|
'waypaper: wallpaper GUI'
|
|
'stasis: idle manager'
|
|
'colloid-catppuccin-gtk-theme-git: Catppuccin GTK theme'
|
|
'sweet-cursors-git: cursor theme'
|
|
|
|
# General tools
|
|
'docker: container runtime'
|
|
'docker-compose: multi-container orchestration'
|
|
'neovim: editor (EDITOR in zshrc)'
|
|
'rustup: Rust toolchain'
|
|
'git: version control'
|
|
'lazygit: terminal UI for git'
|
|
'btop: system monitor'
|
|
'fastfetch: system info display'
|
|
'auto-cpufreq: CPU frequency scaling'
|
|
'ufw: firewall'
|
|
'timeshift: system snapshots'
|
|
'fwupd: firmware updates'
|
|
'waterfox-bin: web browser'
|
|
'blueberry: bluetooth manager GUI'
|
|
'nwg-look: GTK settings editor'
|
|
'wdisplays-persistent-gettext: display configuration GUI'
|
|
'wl-color-picker: color picker'
|
|
'waybar-niri-windows-bin: niri window titles for waybar'
|
|
'waybar-niri-workspaces-enhanced-git: niri workspaces for waybar'
|
|
'xwayland-satellite: X11 app support'
|
|
'colloid-catppuccin-theme-git: full Catppuccin GTK+icon theme'
|
|
)
|
|
|
|
makedepends=('git')
|
|
provides=('moonarch')
|
|
conflicts=('moonarch')
|
|
source=("git+${url}.git")
|
|
sha256sums=('SKIP')
|
|
|
|
pkgver() {
|
|
cd "$srcdir/moonarch"
|
|
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
|
}
|
|
|
|
package() {
|
|
cd "$srcdir/moonarch"
|
|
|
|
# --- XDG configs -> /etc/xdg/ ---
|
|
# walker/config.toml is excluded (owned by walker package).
|
|
# Our override is installed to /usr/share/moonarch/ and deployed
|
|
# to /etc/skel/ + existing user homes via the .install hook.
|
|
local _xdg_src="defaults/xdg"
|
|
while IFS= read -r -d '' file; do
|
|
local _rel="${file#"$_xdg_src/"}"
|
|
[[ "$_rel" == "walker/config.toml" ]] && continue
|
|
[[ "$_rel" == "foot/foot.ini" ]] && continue
|
|
[[ "$_rel" == "waybar/style.css" ]] && continue
|
|
[[ "$_rel" == "swaync/config.json" ]] && continue
|
|
[[ "$_rel" == "swaync/style.css" ]] && continue
|
|
if [[ "$file" == *.sh ]]; then
|
|
install -Dm755 "$file" "$pkgdir/etc/xdg/$_rel"
|
|
else
|
|
install -Dm644 "$file" "$pkgdir/etc/xdg/$_rel"
|
|
fi
|
|
done < <(find "$_xdg_src" -type f -print0)
|
|
|
|
# GTK4 theme symlinks (override settings.ini already installed above)
|
|
ln -sf /usr/share/themes/Colloid-Grey-Dark-Catppuccin/gtk-4.0/gtk-dark.css \
|
|
"$pkgdir/etc/xdg/gtk-4.0/gtk.css"
|
|
ln -sf /usr/share/themes/Colloid-Grey-Dark-Catppuccin/gtk-4.0/gtk-dark.css \
|
|
"$pkgdir/etc/xdg/gtk-4.0/gtk-dark.css"
|
|
ln -sf /usr/share/themes/Colloid-Grey-Dark-Catppuccin/gtk-4.0/assets \
|
|
"$pkgdir/etc/xdg/gtk-4.0/assets"
|
|
|
|
# --- Helper scripts -> /usr/bin/ ---
|
|
install -Dm755 defaults/bin/moonarch-* -t "$pkgdir/usr/bin/"
|
|
|
|
# moonarch-update + shorthand alias
|
|
install -Dm755 scripts/moonarch-update "$pkgdir/usr/bin/moonarch-update"
|
|
ln -s moonarch-update "$pkgdir/usr/bin/moonup"
|
|
|
|
# moonarch-doctor + shorthand alias
|
|
install -Dm755 scripts/moonarch-doctor "$pkgdir/usr/bin/moonarch-doctor"
|
|
ln -s moonarch-doctor "$pkgdir/usr/bin/moondoc"
|
|
|
|
# awww compatibility symlinks (waypaper calls swww)
|
|
ln -sf /usr/bin/awww "$pkgdir/usr/bin/swww"
|
|
ln -sf /usr/bin/awww-daemon "$pkgdir/usr/bin/swww-daemon"
|
|
|
|
# --- Zsh config ---
|
|
install -Dm644 defaults/shell/zshrc "$pkgdir/etc/zsh/zshrc.moonarch"
|
|
|
|
# --- Wallpaper ---
|
|
install -Dm644 defaults/backgrounds/wallpaper.jpg \
|
|
"$pkgdir/usr/share/moonarch/wallpaper.jpg"
|
|
|
|
# --- Package lists (data files for moonarch-update) ---
|
|
install -Dm644 packages/official.txt "$pkgdir/usr/share/moonarch/official.txt"
|
|
install -Dm644 packages/aur.txt "$pkgdir/usr/share/moonarch/aur.txt"
|
|
|
|
# --- Walker config override (deployed to user homes by .install) ---
|
|
install -Dm644 defaults/xdg/walker/config.toml \
|
|
"$pkgdir/usr/share/moonarch/walker-config.toml"
|
|
|
|
# --- Configs owned by other packages (deployed by .install, not owned here) ---
|
|
install -Dm644 defaults/xdg/foot/foot.ini \
|
|
"$pkgdir/usr/share/moonarch/foot/foot.ini"
|
|
install -Dm644 defaults/xdg/waybar/style.css \
|
|
"$pkgdir/usr/share/moonarch/waybar/style.css"
|
|
install -Dm644 defaults/xdg/swaync/config.json \
|
|
"$pkgdir/usr/share/moonarch/swaync/config.json"
|
|
install -Dm644 defaults/xdg/swaync/style.css \
|
|
"$pkgdir/usr/share/moonarch/swaync/style.css"
|
|
|
|
# --- Reference configs for greetd/moongreet (deployed by .install, not owned) ---
|
|
install -Dm644 defaults/etc/greetd/config.toml \
|
|
"$pkgdir/usr/share/moonarch/greetd/config.toml"
|
|
install -Dm644 defaults/etc/greetd/niri-greeter.kdl \
|
|
"$pkgdir/usr/share/moonarch/greetd/niri-greeter.kdl"
|
|
install -Dm644 defaults/etc/moongreet/moongreet.toml \
|
|
"$pkgdir/usr/share/moonarch/moongreet/moongreet.toml"
|
|
|
|
# --- Systemd user services -> /etc/systemd/user/ ---
|
|
install -Dm644 defaults/etc/systemd/user/*.service -t "$pkgdir/etc/systemd/user/"
|
|
|
|
# Enable services by creating the WantedBy symlinks directly
|
|
install -dm755 "$pkgdir/etc/systemd/user/graphical-session.target.wants"
|
|
for svc in defaults/etc/systemd/user/*.service; do
|
|
ln -sf "../$(basename "$svc")" \
|
|
"$pkgdir/etc/systemd/user/graphical-session.target.wants/$(basename "$svc")"
|
|
done
|
|
|
|
# --- udev rules -> /usr/lib/udev/rules.d/ ---
|
|
install -Dm644 defaults/etc/udev/rules.d/90-moonarch-battery.rules \
|
|
"$pkgdir/usr/lib/udev/rules.d/90-moonarch-battery.rules"
|
|
|
|
# --- Systemd system service (battery conservation restore) -> /usr/lib/systemd/system/ ---
|
|
install -Dm644 defaults/etc/systemd/system/moonarch-batsaver.service \
|
|
"$pkgdir/usr/lib/systemd/system/moonarch-batsaver.service"
|
|
|
|
}
|
|
|
|
backup=(
|
|
'etc/zsh/zshrc.moonarch'
|
|
)
|