summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.forgejo/workflows/build-hyprland.yml156
-rw-r--r--.forgejo/workflows/hyprland-update-check.yml129
-rw-r--r--hyprland-raveos/aquamarine/PKGBUILD45
-rw-r--r--hyprland-raveos/dms-shell/PKGBUILD90
-rw-r--r--hyprland-raveos/hyprcursor/PKGBUILD36
-rw-r--r--hyprland-raveos/hyprgraphics/PKGBUILD42
-rw-r--r--hyprland-raveos/hyprland-guiutils/PKGBUILD40
-rw-r--r--hyprland-raveos/hyprland-qt-support/PKGBUILD41
-rw-r--r--hyprland-raveos/hyprland/PKGBUILD105
-rw-r--r--hyprland-raveos/hyprlang/PKGBUILD32
-rw-r--r--hyprland-raveos/hyprpolkitagent/PKGBUILD39
-rw-r--r--hyprland-raveos/hyprutils/PKGBUILD35
-rw-r--r--hyprland-raveos/hyprwayland-scanner/PKGBUILD29
-rw-r--r--hyprland-raveos/hyprwire/PKGBUILD38
-rw-r--r--hyprland-raveos/xdg-desktop-portal-hyprland/PKGBUILD58
15 files changed, 915 insertions, 0 deletions
diff --git a/.forgejo/workflows/build-hyprland.yml b/.forgejo/workflows/build-hyprland.yml
new file mode 100644
index 0000000..f60c8ba
--- /dev/null
+++ b/.forgejo/workflows/build-hyprland.yml
@@ -0,0 +1,156 @@
+name: Build hyprland-raveos stack
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - 'hyprland-raveos/**'
+ workflow_dispatch:
+
+concurrency:
+ group: raveos-hyprland-build
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: iso-builder
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Install build dependencies
+ run: |
+ set -euo pipefail
+ sudo pacman -S --needed --noconfirm \
+ base-devel cmake meson ninja clang llvm lld rust go git \
+ wayland wayland-protocols cairo pango libxkbcommon libinput \
+ libdrm mesa libglvnd pixman xorg-xwayland rsync
+
+ - name: Fetch core repo via rsync
+ run: |
+ set -euo pipefail
+ RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no"
+ rm -rf /tmp/raveos-core-repo
+ mkdir -p /tmp/raveos-core-repo/x86_64
+ rsync -az -e "$RSYNC_SSH" \
+ root@10.66.66.1:/root/docker/repo/repo/x86_64/ /tmp/raveos-core-repo/x86_64/ || true
+ mkdir -p /tmp/builtpkgs
+
+ - name: Import GPG signing key
+ run: |
+ set -euo pipefail
+ export GNUPGHOME=/tmp/raveos-gnupg
+ rm -rf "$GNUPGHOME"
+ mkdir -m 700 "$GNUPGHOME"
+ echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import
+
+ - name: Build hyprland-raveos stack
+ run: |
+ set -euo pipefail
+ ORDER=(
+ hyprutils
+ hyprlang
+ hyprwayland-scanner
+ aquamarine
+ hyprcursor
+ hyprgraphics
+ hyprwire
+ hyprland-guiutils
+ hyprland
+ xdg-desktop-portal-hyprland
+ hyprpolkitagent
+ hyprland-qt-support
+ dms-shell
+ )
+
+ mkdir -p /tmp/builtpkgs
+ CORE="/tmp/raveos-core-repo/x86_64"
+
+ for pkg in "${ORDER[@]}"; do
+ dir="hyprland-raveos/$pkg"
+ [ -d "$dir" ] || continue
+
+ PKGVER=$(grep '^pkgver=' "$dir/PKGBUILD" | head -1 | cut -d= -f2 | tr -d "'\"")
+ PKGREL=$(grep '^pkgrel=' "$dir/PKGBUILD" | head -1 | cut -d= -f2 | tr -d "'\"")
+
+ echo "=== Checking $pkg (${PKGVER}-${PKGREL}) ==="
+ if ls "$CORE"/${pkg}-${PKGVER}-${PKGREL}-*.pkg.tar.zst 2>/dev/null | grep -q .; then
+ echo "$pkg already built -> skipping"
+ continue
+ fi
+
+ echo "=== Building $pkg ==="
+ cd "$dir"
+ chmod -R 777 .
+ sudo -u builder makepkg -s --noconfirm --needed
+
+ for built in *.pkg.tar.zst; do
+ [ -f "$built" ] || continue
+ cp -v "$built" /tmp/builtpkgs/
+ sudo pacman -U --noconfirm "$built" || true
+ done
+ cd - >/dev/null
+ done
+
+ - name: Sign built packages
+ run: |
+ set -euo pipefail
+ export GNUPGHOME=/tmp/raveos-gnupg
+ for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
+ [ -f "$pkg" ] || continue
+ gpg --batch --yes --pinentry-mode loopback \
+ --passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
+ --local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
+ --detach-sign --no-armor "$pkg"
+ done
+
+ - name: Update repo database and sync to VPS
+ run: |
+ set -euo pipefail
+ BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
+ if [ -z "$BUILT" ]; then
+ echo "Nincs új csomag -> kihagyva"
+ exit 0
+ fi
+
+ CORE="/tmp/raveos-core-repo/x86_64"
+ for pkg in $BUILT; do
+ PKGFILE=$(basename "$pkg")
+ PKGNAME=$(echo "$PKGFILE" | sed 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
+ rm -f "$CORE/${PKGNAME}-"*.pkg.tar.zst* 2>/dev/null || true
+ cp -v "$pkg" "$CORE/"
+ [ -f "$pkg.sig" ] && cp -v "$pkg.sig" "$CORE/"
+ done
+
+ export GNUPGHOME=/tmp/raveos-gnupg
+ cd "$CORE"
+ ALLPKGS=$(ls *.pkg.tar.zst)
+ repo-add raveos-core-repo.db.tar.xz $ALLPKGS
+
+ for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
+ gpg --batch --yes --pinentry-mode loopback \
+ --passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
+ --local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
+ --detach-sign --no-armor -o "$f.sig" "$f"
+ done
+ ln -sf raveos-core-repo.db.tar.xz.sig raveos-core-repo.db.sig
+ ln -sf raveos-core-repo.files.tar.xz.sig raveos-core-repo.files.sig
+
+ RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no"
+ rsync -az --delete -e "$RSYNC_SSH" \
+ "$CORE/" root@10.66.66.1:/root/docker/repo/repo/x86_64/
+
+ echo "::notice title=Hyprland stack published::All packages updated in repo"
+
+ - name: Cleanup
+ if: always()
+ run: |
+ gpgconf --homedir /tmp/raveos-gnupg --kill gpg-agent || true
+ sudo rm -rf /tmp/raveos-gnupg || true
+ sudo rm -rf /tmp/builtpkgs || true
+ sudo rm -rf /tmp/raveos-core-repo || true
+ df -h
diff --git a/.forgejo/workflows/hyprland-update-check.yml b/.forgejo/workflows/hyprland-update-check.yml
new file mode 100644
index 0000000..f6afab7
--- /dev/null
+++ b/.forgejo/workflows/hyprland-update-check.yml
@@ -0,0 +1,129 @@
+name: Hyprland Stack Update Check
+
+on:
+ schedule:
+ - cron: '0 6 * * 1,4'
+ workflow_dispatch:
+
+jobs:
+ check-update:
+ runs-on: iso-builder
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ token: ${{ secrets.FORGEJO_TOKEN }}
+
+ - name: Check for existing open PR
+ id: prcheck
+ run: |
+ set -euo pipefail
+ OPEN_PRS=$(curl -fsSL \
+ -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
+ "https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls?state=open&limit=50")
+ EXISTS=$(echo "$OPEN_PRS" | python3 -c "
+ import sys, json
+ pulls = json.load(sys.stdin)
+ found = any(p.get('head', {}).get('ref', '').startswith('update/hyprland-stack') for p in pulls)
+ print('yes' if found else 'no')
+ ")
+ echo "EXISTS=$EXISTS" >> $GITHUB_OUTPUT
+ echo "Open PR exists: $EXISTS"
+
+ - name: Check upstream versions
+ id: check
+ if: steps.prcheck.outputs.EXISTS == 'no'
+ run: |
+ set -euo pipefail
+ sudo pacman -S --needed --noconfirm pacman-contrib curl jq
+
+ UPDATED_PKGS=()
+ SUMMARY=""
+
+ PKGS=(
+ hyprutils
+ hyprlang
+ hyprwayland-scanner
+ aquamarine
+ hyprcursor
+ hyprgraphics
+ hyprwire
+ hyprland-guiutils
+ hyprland
+ xdg-desktop-portal-hyprland
+ hyprpolkitagent
+ hyprland-qt-support
+ dms-shell
+ )
+
+ for pkg in "${PKGS[@]}"; do
+ dir="hyprland-raveos/$pkg"
+ [ -d "$dir" ] || continue
+
+ LOCAL_VER=$(grep '^pkgver=' "$dir/PKGBUILD" | head -1 | cut -d= -f2 | tr -d "'\"")
+
+ UPSTREAM_PKGBUILD=$(curl -fsSL --retry 3 "https://gitlab.archlinux.org/archlinux/packaging/packages/${pkg}/-/raw/main/PKGBUILD" 2>/dev/null || true)
+ [ -n "$UPSTREAM_PKGBUILD" ] || continue
+
+ UPSTREAM_VER=$(echo "$UPSTREAM_PKGBUILD" | grep '^pkgver=' | head -1 | cut -d= -f2 | tr -d "'\"")
+ [ -n "$UPSTREAM_VER" ] || continue
+
+ if [ "$LOCAL_VER" != "$UPSTREAM_VER" ]; then
+ echo "Update available for $pkg: $LOCAL_VER -> $UPSTREAM_VER"
+
+ # Frissites letoltese es pkgrel beallitasa
+ echo "$UPSTREAM_PKGBUILD" > "$dir/PKGBUILD"
+ sed -i 's/^pkgrel=[0-9]*/pkgrel=10/' "$dir/PKGBUILD"
+ if [ "$pkg" = "hyprpolkitagent" ] || [ "$pkg" = "hyprland-qt-support" ]; then
+ sed -i 's/^pkgrel=10/pkgrel=20/' "$dir/PKGBUILD"
+ fi
+
+ UPDATED_PKGS+=("$pkg")
+ SUMMARY="${SUMMARY}\n- **${pkg}**: \`${LOCAL_VER}\` -> \`${UPSTREAM_VER}-10\`"
+ else
+ echo "$pkg is up-to-date ($LOCAL_VER)"
+ fi
+ done
+
+ if [ ${#UPDATED_PKGS[@]} -gt 0 ]; then
+ echo "HAS_UPDATES=yes" >> $GITHUB_OUTPUT
+ echo "COUNT=${#UPDATED_PKGS[@]}" >> $GITHUB_OUTPUT
+ echo -e "SUMMARY<<EOF\n${SUMMARY}\nEOF" >> $GITHUB_OUTPUT
+ else
+ echo "HAS_UPDATES=no" >> $GITHUB_OUTPUT
+ echo "No updates found for hyprland stack."
+ fi
+
+ - name: Create branch and open single Pull Request
+ if: steps.prcheck.outputs.EXISTS == 'no' && steps.check.outputs.HAS_UPDATES == 'yes'
+ run: |
+ set -euo pipefail
+ DATE=$(date +%Y%m%d-%H%M)
+ BRANCH="update/hyprland-stack-${DATE}"
+
+ git config user.name "RaveOS Bot"
+ git config user.email "bot@raveos.hu"
+ git checkout -b "$BRANCH"
+
+ git add hyprland-raveos/
+ git commit -m "update: hyprland stack (${{ steps.check.outputs.COUNT }} packages)"
+
+ git remote set-url origin "https://bot:${{ secrets.FORGEJO_TOKEN }}@git.rp1.hu/RaveOS/RaveOS-PKGBUILD.git"
+ git push origin "$BRANCH"
+
+ PR_BODY="Automata Hyprland stack frissítés (${{ steps.check.outputs.COUNT }} csomag):\n${{ steps.check.outputs.SUMMARY }}\n\nA csomagok a merge után az \`iso-builder\` runneren sorrendben fordulnak le, GPG aláírással kerülnek a RaveOS repóba."
+
+ curl -fsSL -X POST \
+ -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
+ -H "Content-Type: application/json" \
+ "https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls" \
+ -d "$(jq -n \
+ --arg title "Hyprland stack frissítés (${{ steps.check.outputs.COUNT }} csomag)" \
+ --arg head "$BRANCH" \
+ --arg base "main" \
+ --arg body "$PR_BODY" \
+ '{title: $title, head: $head, base: $base, body: $body}')"
+
+ echo "Single PR successfully opened for hyprland stack update."
diff --git a/hyprland-raveos/aquamarine/PKGBUILD b/hyprland-raveos/aquamarine/PKGBUILD
new file mode 100644
index 0000000..4a513b7
--- /dev/null
+++ b/hyprland-raveos/aquamarine/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: Aaron Blasko <blaskoazzolaaaron [at] gmail.com>
+
+pkgname=aquamarine
+pkgver=0.15.0
+pkgrel=10
+pkgdesc='a very light linux rendering backend library'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(libgcc
+ libstdc++
+ glibc # libc.so libm.so
+ hyprutils libhyprutils.so
+ libdisplay-info libdisplay-info.so
+ libdrm # libdrm.so
+ libglvnd libEGL.so
+ libinput # libinput.so
+ mesa # libgbm.so
+ opengl-driver
+ pixman
+ seatd libseat.so
+ systemd-libs libudev.so
+ wayland libwayland-client.so
+ wayland-protocols)
+makedepends=(cmake
+ hyprwayland-scanner)
+provides=("lib$pkgname.so")
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('bb5323f58cd2f379cb11c39893336e49980fe2e9fb101745addd87cebde3d13d')
+
+build() {
+ cd "$_archive"
+ cmake -B build \
+ -D CMAKE_INSTALL_PREFIX=/usr \
+ -D CMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
diff --git a/hyprland-raveos/dms-shell/PKGBUILD b/hyprland-raveos/dms-shell/PKGBUILD
new file mode 100644
index 0000000..89cc547
--- /dev/null
+++ b/hyprland-raveos/dms-shell/PKGBUILD
@@ -0,0 +1,90 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+
+pkgbase=dms-shell
+_pkg1=DankMaterialShell
+_pkg2=dank-qml-common
+pkgname=($pkgbase $pkgbase-hyprland $pkgbase-niri)
+pkgver=1.6.0
+pkgrel=10
+pkgdesc='A Quickshell-based desktop shell with Material 3 design principles'
+arch=(x86_64 aarch64)
+url="https://github.com/AvengeMedia/$_pkg1"
+license=(MIT)
+depends=(accountsservice
+ quickshell)
+optdepends=('cava: Audio visualizer'
+ 'cups-pk-helper: Printer Management'
+ 'i2c-tools: External monitor brightness control'
+ 'iwd: Required for network managementa via iwd'
+ 'matugen: Dynamic wallpaper-based theming'
+ 'networkmanager: Required for network managementa via networkmanager'
+ 'power-profiles-daemon: Set power profile'
+ 'qt6-multimedia: Sound effect support'
+ 'qt6ct: Qt6 application theming'
+ 'systemd: Required for network managementa via systemd-networkd'
+ 'wtype: Paste from clipboard history and plugins')
+makedepends=(git
+ go)
+replaces=($pkgname-bin)
+source=("git+$url.git#tag=v$pkgver"
+ "git+${url/$_pkg1/$_pkg2}")
+sha256sums=('51186d2a9af990b4640c6b0d9298ba54a1fe16becd14c527243980438eae844a'
+ 'SKIP')
+
+prepare() {
+ cd "$_pkg1"
+ git submodule init
+ git config submodule.$_pkg2.url ../$_pkg2
+ git -c protocol.file.allow=always submodule update
+ sed -i \
+ -e '/@update-desktop-database/d' \
+ -e '/@gtk-update-icon-cache/d' \
+ -e '/^install:/s/install-shell //' \
+ Makefile
+ pushd core
+ make sync-shell
+
+}
+
+build() {
+ cd "$_pkg1/core"
+ export CGO_CPPFLAGS="$CPPFLAGS"
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_CXXFLAGS="$CXXFLAGS"
+ go build -v \
+ -tags distro_binary \
+ -tags withshell \
+ -trimpath \
+ -buildmode=pie \
+ -mod=readonly \
+ -modcacherw \
+ -ldflags="-s -w -linkmode=external -extldflags \"${LDFLAGS}\" -X main.Version=v$pkgver" \
+ -o bin/dms ./cmd/dms
+}
+
+package_dms-shell() {
+ cd "$_pkg1"
+ depends+=(dms-shell-compositor)
+ optdepneds+=('dms-shell-hyprland: Hyprland specific dependencies')
+ optdepneds+=('dms-shell-niri: Niri specific dependencies')
+ make DESTDIR="$pkgdir" PREFIX="/usr" SYSTEMD_USER_DIR="$pkgdir/usr/lib/systemd/user" install
+ install -Dm0644 -t "$pkgdir/usr/share/doc/$pkgname/" README.md
+ cp -r "docs/"* "$pkgdir/usr/share/doc/$pkgname/"
+}
+
+package_dms-shell-hyprland() {
+ pkgdesc+=' (for Hyprland)'
+ provides=(dms-shell-compositor)
+ depends=(dms-shell
+ hyprland)
+ optdepends=()
+}
+
+package_dms-shell-niri() {
+ pkgdesc+=' (for Niri)'
+ provides=(dms-shell-compositor)
+ depends=(niri)
+ depends=(dms-shell
+ niri)
+ optdepends=()
+}
diff --git a/hyprland-raveos/hyprcursor/PKGBUILD b/hyprland-raveos/hyprcursor/PKGBUILD
new file mode 100644
index 0000000..713e91b
--- /dev/null
+++ b/hyprland-raveos/hyprcursor/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+
+pkgname=hyprcursor
+pkgver=0.1.13
+pkgrel=10
+pkgdesc='The hyprland cursor format, library and utilities'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(cairo # libcairo.so
+ libgcc # libgcc_s.so
+ 'libstdc++' # libstdc++.so
+ glibc # libc.so libm.so
+ hyprlang libhyprlang.so
+ librsvg librsvg-2.so
+ libzip libzip.so
+ tomlplusplus libtomlplusplus.so)
+makedepends=(cmake)
+provides=("lib$pkgname.so")
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('82af8b2ce27242ffdd6baebaa71b3f6c8665dc25c52bfcfccc16912622896af8')
+
+build() {
+ cd "$_archive"
+ cmake -B build \
+ -D CMAKE_INSTALL_PREFIX=/usr \
+ -D CMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
diff --git a/hyprland-raveos/hyprgraphics/PKGBUILD b/hyprland-raveos/hyprgraphics/PKGBUILD
new file mode 100644
index 0000000..6e32497
--- /dev/null
+++ b/hyprland-raveos/hyprgraphics/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+
+pkgname=hyprgraphics
+pkgver=0.5.1
+pkgrel=10
+pkgdesc='hyprland graphics resources and utilities'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(cairo # libcairo.so
+ file libmagic.so
+ libgcc # libgcc_s.so
+ 'libstdc++' # libstdc++.so
+ glibc # libc.so libm.so
+ hyprutils libhyprutils.so
+ libjpeg-turbo libjpeg.so
+ libjxl libjxl.so libjxl_threads.so
+ libpng # libpng.so
+ librsvg
+ libwebp libwebp.so
+ libglvnd
+ pango libpangocairo-1.0.so
+ pixman)
+makedepends=(cmake)
+provides=("lib$pkgname.so")
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('861ecaad872835922dd5745a612d7a4cc7bfc4babb1d06bc92bc63c2ac013b74')
+
+build() {
+ cd "$_archive"
+ cmake -B build \
+ -D CMAKE_INSTALL_PREFIX=/usr \
+ -D CMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
diff --git a/hyprland-raveos/hyprland-guiutils/PKGBUILD b/hyprland-raveos/hyprland-guiutils/PKGBUILD
new file mode 100644
index 0000000..8b7bb09
--- /dev/null
+++ b/hyprland-raveos/hyprland-guiutils/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+
+pkgname=hyprland-guiutils
+pkgver=0.2.2
+pkgrel=10
+pkgdesc='Hyprland GUI utilities'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(
+ libgcc
+ libstdc++
+ glibc # libc.so libm.so
+ hyprlang
+ hyprtoolkit libhyprtoolkit.so
+ hyprutils libhyprutils.so
+ libdrm
+ pixman
+)
+makedepends=(cmake)
+replaces=(hyprland-qtutils)
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('16f92a6c5a22ac58e1fc313f6b202c188da45e804e1f21ff57dfd0da5c1a01b7')
+
+build() {
+ cd "$_archive"
+ local cmake_flags=(
+ -D CMAKE_BUILD_TYPE=Release
+ -D CMAKE_INSTALL_PREFIX=/usr
+ )
+ cmake -B build ${cmake_flags[@]}
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
diff --git a/hyprland-raveos/hyprland-qt-support/PKGBUILD b/hyprland-raveos/hyprland-qt-support/PKGBUILD
new file mode 100644
index 0000000..f25a94a
--- /dev/null
+++ b/hyprland-raveos/hyprland-qt-support/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: Charles Dong <chardon_cs@proton.me>
+
+pkgname=hyprland-qt-support
+pkgver=0.1.0
+pkgrel=20
+pkgdesc='QML style provider for Hypr* QT apps'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(
+ libgcc
+ libstdc++
+ glibc # libc.so libm.so
+ hyprlang libhyprlang.so
+ qt6-base # libQt6Core.so libQt6Gui.so libQt6Widgets.so
+ qt6-declarative # libQt6Qml.so libQt6QuickControls2.so
+)
+makedepends=(cmake)
+provides=(libhyprland-quick-style-impl.so
+ libhyprland-quick-style.so
+ libhyprland-quick-style-implplugin.so
+ libhyprland-quick-styleplugin.so)
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('cac1f980bd088b890097f3f999cfdf03e73ee94c53f3c92d0b3bc23baa9e7b2c')
+
+build() {
+ cd "$_archive"
+ cmake -B build \
+ -D CMAKE_INSTALL_PREFIX=/usr \
+ -D INSTALL_QML_PREFIX=/lib/qt6/qml \
+ -D CMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
diff --git a/hyprland-raveos/hyprland/PKGBUILD b/hyprland-raveos/hyprland/PKGBUILD
new file mode 100644
index 0000000..04736e5
--- /dev/null
+++ b/hyprland-raveos/hyprland/PKGBUILD
@@ -0,0 +1,105 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: ThatOneCalculator <kainoa@t1c.dev>
+# Contributor: Brenno Lemos <brenno@syndel.is>
+# Contributor: Gabriel Fox <inbox@gabrielfox.dev>
+
+pkgname=(hyprland hyprpm)
+pkgver=0.56.2
+pkgrel=10
+pkgdesc='a highly customizable dynamic tiling Wayland compositor'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/${pkgname^}"
+license=(BSD-3-Clause)
+depends=(cairo # libcairo.so
+ aquamarine libaquamarine.so
+ libgcc # libgcc_s.so
+ 'libstdc++' # libstdc++.so
+ glibc # libc.so libm.so
+ glib2 libgio-2.0.so libgobject-2.0.so
+ glslang # libglslang-default-resource-limits.so libglslang.so
+ hyprcursor libhyprcursor.so
+ hyprgraphics libhyprgraphics.so
+ hyprland-guiutils
+ hyprlang libhyprlang.so
+ hyprutils libhyprutils.so
+ hyprwire libhyprwire.so
+ lcms2 liblcms2.so
+ libdrm # libdrm.so
+ libglvnd libEGL.so libGLESv2.so
+ libinput # libinput.so
+ libx11
+ libxcb # libxcb-dri3.so libxcb-present.so libxcb-render.so libxcb-res.so libxcb-shm.so libxcb.so libxcb-xfixes.so libxcb-xinput.so
+ libxcomposite # libxcb-composite.so
+ libxcursor # libXcursor.so
+ libxfixes
+ libxkbcommon libxkbcommon.so
+ libxrender
+ lua # liblua.so
+ mesa # libgbm.so
+ muparser # libmuparser.so
+ opengl-driver
+ pango libpango-1.0.so libpangocairo-1.0.so
+ pixman libpixman-1.so
+ re2 libre2.so
+ tomlplusplus libtomlplusplus.so
+ util-linux-libs libuuid.so
+ wayland libwayland-server.so
+ wayland-protocols
+ xcb-proto
+ xcb-util
+ xcb-util-errors # libxcb-errors.so
+ xcb-util-image
+ xcb-util-keysyms
+ xcb-util-renderutil # libxcb-render-util.so
+ xcb-util-wm # libxcb-ewmh.so libxcb-icccm.so
+ xorg-xwayland)
+makedepends=(cmake
+ glaze
+ hyprland-protocols
+ hyprwayland-scanner
+ meson
+ ninja
+ xorgproto)
+optdepends=('hyprpm: build and install plugins'
+ 'hyprshutdown: clean logout and shutdown helper'
+ 'xdg-desktop-portal-hyprland: xdg-desktop-portal backend for hyprland')
+provides=(wayland-compositor)
+_archive="${pkgname^}-$pkgver"
+source=("$_archive.tar.gz::$url/releases/download/v$pkgver/source-v$pkgver.tar.gz")
+sha256sums=('03ad3f5ef152ff44116ffd56fcf808486211ecabf4f0ba567108ee746ba5cd2e')
+
+prepare() {
+ ln -sf hyprland-source "$_archive"
+ cd "$_archive"
+ sed -i -e '/^release:/{n;s/-D/-DCMAKE_SKIP_RPATH=ON -D/}' Makefile
+ sed -i -e '/find_package.glaze/s/7...<8 //' {.,hyprpm,start}/CMakeLists.txt
+}
+
+build() {
+ cd "$_archive"
+ make release PREFIX=/usr
+}
+
+package_hyprland() {
+ cd "$_archive"
+ make DESTDIR="$pkgdir" install
+ rm -fv "$pkgdir/usr/include/hyprland/src/version.h.in"
+ find $pkgdir -name '*hyprpm*' -delete
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
+}
+
+package_hyprpm() {
+ pkgdesc='Plugin manager for Hyprland'
+ depends=(cmake
+ cpio
+ glaze
+ hyprland
+ hyprland-protocols
+ hyprwayland-scanner
+ meson)
+ cd "$_archive"
+ make DESTDIR="$pkgdir" install
+ find $pkgdir -type f,l -not -name '*hyprpm*' -delete
+ find $pkgdir -type d -empty -delete
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
+}
diff --git a/hyprland-raveos/hyprlang/PKGBUILD b/hyprland-raveos/hyprlang/PKGBUILD
new file mode 100644
index 0000000..2d5e25f
--- /dev/null
+++ b/hyprland-raveos/hyprlang/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+
+pkgname=hyprlang
+pkgver=0.6.8
+pkgrel=10
+pkgdesc='implementation library for the hypr config language'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(libgcc
+ 'libstdc++'
+ glibc
+ hyprutils libhyprutils.so)
+makedepends=(cmake)
+provides=("lib$pkgname.so")
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('d10a0778b646e04d83e8b90cc0f764fb96958c01a15c3c0678d95a40fc647ed5')
+
+build() {
+ cd "$_archive"
+ cmake -B build \
+ -D CMAKE_INSTALL_PREFIX=/usr \
+ -D CMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
diff --git a/hyprland-raveos/hyprpolkitagent/PKGBUILD b/hyprland-raveos/hyprpolkitagent/PKGBUILD
new file mode 100644
index 0000000..fd592a6
--- /dev/null
+++ b/hyprland-raveos/hyprpolkitagent/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: Adam Perkowski <adas1per@protonmail.com>
+
+pkgname=hyprpolkitagent
+pkgver=0.1.3
+pkgrel=20
+pkgdesc='Simple polkit authentication agent for Hyprland, written in QT/QML'
+arch=(x86_64 aarch64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(libgcc # libgcc_s.so
+ 'libstdc++' # libstdc++.so
+ glibc # libc.so libm.so
+ hyprland-qt-support
+ hyprutils
+ polkit-qt6 # libpolkit-qt6-core-1.so libpolkit-qt6-agent-1.so
+ qt6-base # libQt6Widgets.so libQt6Gui.so libQt6Qml.so libQt6Core.so
+ qt6-declarative) # libQt6QuickControls2.so
+makedepends=(cmake)
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('a8fa714b92d47331f056b608cb731dd1f5cc3845a9109cb22c6e6eb55b4eac84')
+
+build() {
+ cd "$_archive"
+ cmake -B build \
+ -D CMAKE_INSTALL_PREFIX=/usr \
+ -D CMAKE_INSTALL_LIBEXECDIR=lib/$pkgname \
+ -D CMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
+
+
diff --git a/hyprland-raveos/hyprutils/PKGBUILD b/hyprland-raveos/hyprutils/PKGBUILD
new file mode 100644
index 0000000..adb0efb
--- /dev/null
+++ b/hyprland-raveos/hyprutils/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Contributor: alba4k <blaskoazzolaaaron@gmail.com>
+
+pkgname=hyprutils
+pkgver=0.14.2
+pkgrel=10
+pkgdesc='Hyprland utilities library used across the ecosystem'
+arch=(x86_64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(pixman libpixman-1.so)
+makedepends=(cmake)
+# checkdepends=(gtest)
+provides=(libhyprutils.so)
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('2061b7b08c8104fb02a609553b28f6c8580e5ec38633015845f1c4553980175b')
+
+build() {
+ cd "$_archive"
+ local cmake_options=(
+ -D CMAKE_BUILD_TYPE=Release
+ -D CMAKE_INSTALL_PREFIX=/usr
+ -D BUILD_TESTING=False
+ )
+ cmake -W no-dev ${cmake_options[@]} -S . -B ./build
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
+}
diff --git a/hyprland-raveos/hyprwayland-scanner/PKGBUILD b/hyprland-raveos/hyprwayland-scanner/PKGBUILD
new file mode 100644
index 0000000..be7894b
--- /dev/null
+++ b/hyprland-raveos/hyprwayland-scanner/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: alba4k <blaskoazzolaaaron@gmail.com>
+
+pkgname="hyprwayland-scanner"
+pkgver=0.4.6
+pkgrel=10
+pkgdesc="A Hyprland implementation of wayland-scanner, in and for C++"
+arch=(x86_64)
+url="https://github.com/hyprwm/hyprwayland-scanner"
+license=('BSD-3-Clause')
+depends=('pugixml')
+makedepends=('git' 'cmake' 'gcc')
+_archive="${pkgname}-$pkgver"
+source=("$_archive.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
+provides=(hyprwayland-scaner)
+sha256sums=('05f55fd1a20d8ca81b5030980fdb7c87147749230145bdb3745af2741d617f5c')
+
+build() {
+ cd "$_archive"
+ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX=/usr -B build
+ cmake --build build --config Release
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="${pkgdir}" cmake --install build
+ install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+}
diff --git a/hyprland-raveos/hyprwire/PKGBUILD b/hyprland-raveos/hyprwire/PKGBUILD
new file mode 100644
index 0000000..985006f
--- /dev/null
+++ b/hyprland-raveos/hyprwire/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+
+pkgname=hyprwire
+pkgver=0.3.1
+pkgrel=10
+pkgdesc='A fast and consistent wire protocol for IPC'
+arch=(x86_64)
+url="https://github.com/hyprwm/$pkgname"
+license=(BSD-3-Clause)
+depends=(
+ libgcc
+ libstdc++
+ glibc # libc.so libm.so
+ hyprutils libhyprutils.so
+ libffi libffi.so
+ pugixml # libpugixml.so
+)
+makedepends=(cmake)
+provides=(libhyprwire.so)
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz")
+sha256sums=('92a673d40ae6a7d66fbcd0a34ec071e026e17eaeeb0040c3375e4b2a80dba737')
+
+build() {
+ cd "$_archive"
+ local cmake_options=(
+ -D CMAKE_BUILD_TYPE=None
+ -D CMAKE_INSTALL_PREFIX=/usr
+ )
+ cmake -B build -W no-dev ${cmake_options[@]}
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
+}
diff --git a/hyprland-raveos/xdg-desktop-portal-hyprland/PKGBUILD b/hyprland-raveos/xdg-desktop-portal-hyprland/PKGBUILD
new file mode 100644
index 0000000..5990440
--- /dev/null
+++ b/hyprland-raveos/xdg-desktop-portal-hyprland/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Caleb Maclennan <caleb@alerque.com>
+# Contributor: Aaron Blasko <blaskoazzolaaaron [at] gmail.com>
+
+pkgname=xdg-desktop-portal-hyprland
+pkgver=1.4.1
+_protocolver=4d29e48433270a2af06b8bc711ca1fe5109746cd
+pkgrel=10
+pkgdesc='xdg-desktop-portal backend for hyprland'
+url="https://github.com/hyprwm/$pkgname"
+arch=(x86_64)
+license=(MIT)
+provides=(xdg-desktop-portal-impl)
+depends=(
+ libgcc
+ libstdc++
+ glibc
+ hyprlang libhyprlang.so
+ hyprutils libhyprutils.so
+ libinih
+ pipewire
+ qt6-base
+ sdbus-cpp libsdbus-c++.so
+ util-linux-libs libuuid.so
+ xdg-desktop-portal
+)
+makedepends=(cmake
+ hyprland-protocols
+ hyprwayland-scanner
+ wayland
+ wayland-protocols)
+optdepends=('grim: required for the screenshot portal to function'
+ 'slurp: support for interactive mode for the screenshot portal')
+_archive="$pkgname-$pkgver"
+source=("$url/archive/v$pkgver/$_archive.tar.gz"
+ "https://github.com/hyprwm/hyprland-protocols/archive/$_protocolver.tar.gz")
+sha256sums=('3652c14f63a9666acea2c841e196782dbc0f74ea5b4783622dd04a32f08b709f'
+ '5f6be4d870e94314f05ec7ff9c9c1f028748230ff80a7f89aeaf66c08e5c70e0')
+
+prepare() {
+ cd "$_archive/subprojects"
+ rm -rf hyprland-protocols sdbus-cpp
+ ln -sfT "$srcdir/hyprland-protocols-$_protocolver" hyprland-protocols
+}
+
+build() {
+ cd "$_archive"
+ cmake -B build \
+ -D CMAKE_INSTALL_PREFIX=/usr \
+ -D CMAKE_INSTALL_LIBEXECDIR=/usr/lib \
+ -D CMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ cd "$_archive"
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
+}