nevaforget 4b539f2092 Update pkgver from first build, add .gitignore for build artifacts
sweet-cursors-git: r1.4b49c35 (source: gitea.moonarch.de fork)
moonarch-git: r24.a6a5a70
2026-03-29 18:31:12 +02:00

173 lines
4.9 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=r24.a6a5a70
pkgrel=1
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'
'moongreet-git'
'moonlock-git'
'moonset-git'
# Bar, launcher, notifications
'waybar'
'rofi-lbonn-wayland-git'
'dunst'
# Terminal
'foot'
# Clipboard
'cliphist'
'wl-clipboard'
# Display & wallpaper
'kanshi'
'awww'
'waypaper'
# Audio
'pipewire'
'wireplumber'
'pipewire-pulse'
'alsa-utils'
'pavucontrol'
# Idle & lock
'stasis'
'gtklock'
'gtklock-playerctl-module'
'gtklock-powerbar-module'
'gtklock-userinfo-module'
'gtklock-dpms-module'
# Theming
'colloid-catppuccin-gtk-theme-git'
'sweet-cursors-git'
'ttf-ubuntusans-nerd'
# System utilities referenced by helper scripts
'brightnessctl'
'libnotify'
'upower'
'wlogout'
'polkit-gnome'
'bluez-utils'
# Shell
'zsh'
# PipeWire extras for XDG config
'pipewire-alsa'
'pipewire-jack'
'gst-plugin-pipewire'
)
optdepends=(
'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/ ---
local _xdg_src="defaults/xdg"
while IFS= read -r -d '' file; do
local _rel="${file#"$_xdg_src/"}"
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-Catppuccin/gtk-4.0/gtk-dark.css \
"$pkgdir/etc/xdg/gtk-4.0/gtk.css"
ln -sf /usr/share/themes/Colloid-Catppuccin/gtk-4.0/gtk-dark.css \
"$pkgdir/etc/xdg/gtk-4.0/gtk-dark.css"
ln -sf /usr/share/themes/Colloid-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
install -Dm755 scripts/moonarch-update "$pkgdir/usr/bin/moonarch-update"
# 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"
# --- 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"
# --- User config templates (for post-install.sh / transform.sh) ---
while IFS= read -r -d '' file; do
local _rel="${file#defaults/user/}"
install -Dm644 "$file" "$pkgdir/usr/share/moonarch/user-defaults/$_rel"
done < <(find defaults/user -type f -print0)
}
backup=(
'etc/zsh/zshrc.moonarch'
)