# 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=r26.0726451 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' # Theming 'colloid-catppuccin-gtk-theme-git' 'sweet-cursors-git' 'ttf-ubuntusans-nerd' # System utilities referenced by helper scripts 'brightnessctl' 'libnotify' 'upower' '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' )