Add moonarch-git and sweet-cursors-git PKGBUILDs
moonarch-git packages all desktop environment defaults (XDG configs, helper scripts, zsh config, wallpaper) for pacman-managed deployment. Includes moonarch-update for simplified system maintenance. sweet-cursors-git packages the Sweet cursor theme separately.
This commit is contained in:
parent
22c1f26d56
commit
0b4fadb6d7
@ -6,9 +6,11 @@ Arch Linux package builds for the Moonarch ecosystem. Use with [paru](https://gi
|
|||||||
|
|
||||||
| Package | Description |
|
| Package | Description |
|
||||||
|---------|-------------|
|
|---------|-------------|
|
||||||
|
| `moonarch-git` | Desktop environment defaults (Niri, Waybar, Catppuccin Mocha) |
|
||||||
| `moonset-git` | Wayland session power menu |
|
| `moonset-git` | Wayland session power menu |
|
||||||
| `moonlock-git` | Wayland lockscreen with PAM and fingerprint support |
|
| `moonlock-git` | Wayland lockscreen with PAM and fingerprint support |
|
||||||
| `moongreet-git` | greetd greeter for Wayland |
|
| `moongreet-git` | greetd greeter for Wayland |
|
||||||
|
| `sweet-cursors-git` | Sweet cursor theme |
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
@ -30,7 +32,7 @@ This downloads the PKGBUILDs from Gitea. Without this step, paru will not find t
|
|||||||
## Install
|
## Install
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
paru -S moonset-git moonlock-git moongreet-git
|
paru -S moonarch-git # pulls in all ecosystem packages as dependencies
|
||||||
```
|
```
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|||||||
172
moonarch-git/PKGBUILD
Normal file
172
moonarch-git/PKGBUILD
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
# 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=0
|
||||||
|
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'
|
||||||
|
)
|
||||||
34
moonarch-git/moonarch.install
Normal file
34
moonarch-git/moonarch.install
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# ABOUTME: Post-install hooks for moonarch-git package.
|
||||||
|
# ABOUTME: Handles zsh integration and configs owned by other packages.
|
||||||
|
|
||||||
|
post_install() {
|
||||||
|
# Zsh integration: source moonarch defaults for users without ~/.zshrc
|
||||||
|
if ! grep -q "zshrc.moonarch" /etc/zsh/zshrc 2>/dev/null; then
|
||||||
|
echo '# Moonarch defaults (overridden by ~/.zshrc)' >> /etc/zsh/zshrc
|
||||||
|
echo '[[ ! -f "$HOME/.zshrc" ]] && source /etc/zsh/zshrc.moonarch' >> /etc/zsh/zshrc
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Deploy greetd config (file owned by greetd package, overwrite deliberately)
|
||||||
|
if [ -d /etc/greetd ]; then
|
||||||
|
cp /usr/share/moonarch/greetd/config.toml /etc/greetd/config.toml
|
||||||
|
cp /usr/share/moonarch/greetd/niri-greeter.kdl /etc/greetd/niri-greeter.kdl
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Deploy moongreet config (file owned by moongreet-git, overwrite deliberately)
|
||||||
|
if [ -d /etc/moongreet ]; then
|
||||||
|
cp /usr/share/moonarch/moongreet/moongreet.toml /etc/moongreet/moongreet.toml
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Cleanup legacy /usr/local/bin/ scripts from pre-package installs
|
||||||
|
rm -f /usr/local/bin/moonarch-* 2>/dev/null || true
|
||||||
|
rm -f /usr/local/bin/swww /usr/local/bin/swww-daemon 2>/dev/null || true
|
||||||
|
rm -f /usr/local/bin/moonarch-update 2>/dev/null || true
|
||||||
|
|
||||||
|
echo "==> Moonarch defaults installed."
|
||||||
|
echo "==> For first-time setup run: /opt/moonarch/scripts/post-install.sh"
|
||||||
|
echo "==> This enables services, configures firewall, and sets up user defaults."
|
||||||
|
}
|
||||||
|
|
||||||
|
post_upgrade() {
|
||||||
|
post_install
|
||||||
|
}
|
||||||
28
sweet-cursors-git/PKGBUILD
Normal file
28
sweet-cursors-git/PKGBUILD
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# ABOUTME: PKGBUILD for Sweet-cursors — cursor theme from the Sweet project.
|
||||||
|
# ABOUTME: Installs the cursor theme to /usr/share/icons/Sweet-cursors.
|
||||||
|
|
||||||
|
# Maintainer: Dominik Kressler
|
||||||
|
|
||||||
|
pkgname=sweet-cursors-git
|
||||||
|
pkgver=0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Sweet cursor theme"
|
||||||
|
arch=('any')
|
||||||
|
url="https://github.com/EliverLara/Sweet"
|
||||||
|
license=('GPL3')
|
||||||
|
makedepends=('git')
|
||||||
|
provides=('sweet-cursors')
|
||||||
|
conflicts=('sweet-cursors')
|
||||||
|
source=("git+${url}.git")
|
||||||
|
sha256sums=('SKIP')
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$srcdir/Sweet"
|
||||||
|
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/Sweet"
|
||||||
|
install -dm755 "$pkgdir/usr/share/icons"
|
||||||
|
cp -r kde/cursors/Sweet-cursors "$pkgdir/usr/share/icons/"
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user