Update KWin PKGBUILD to match GNOME structure and style

Co-authored-by: wheaney <42350981+wheaney@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-02-17 00:40:38 +00:00
parent 4d1b7abba0
commit dfe7033171
2 changed files with 61 additions and 69 deletions

View File

@ -1,11 +1,26 @@
# Maintainer: Wayne Heaney <wayne@xronlinux.com>
pkgname=breezy-desktop-kwin-git
_pkgbase=breezy-desktop
pkgname="${_pkgbase}"-kwin-git
pkgver=2.8.2.4
pkgrel=1
pkgdesc="Breezy Desktop - KWin Plugin for virtual desktop environments with XR glasses"
pkgdesc="Breezy KWin - XR desktop"
arch=('x86_64' 'aarch64')
url="https://github.com/wheaney/breezy-desktop"
license=('GPL-3.0-or-later')
license=('GPL-3.0')
makedepends=(
'git'
'cmake'
'extra-cmake-modules'
'kf6-kconfig'
'kf6-kconfigwidgets'
'kf6-kcoreaddons'
'kf6-kglobalaccel'
'kf6-ki18n'
'kf6-kcmutils'
'kf6-kwindowsystem'
'kf6-kxmlgui'
'qt6-tools'
)
depends=(
'kwin'
'qt6-base'
@ -21,75 +36,44 @@ depends=(
'kf6-kwindowsystem'
'kf6-kxmlgui'
'python'
'xr-driver-git>=2.0.0'
)
makedepends=(
'git'
'cmake'
'extra-cmake-modules'
'kf6-kconfig'
'kf6-kconfigwidgets'
'kf6-kcoreaddons'
'kf6-kglobalaccel'
'kf6-ki18n'
'kf6-kcmutils'
'kf6-kwindowsystem'
'kf6-kxmlgui'
'qt6-tools'
)
optdepends=(
'xr-driver-breezy-kwin-git: XR driver backend (recommended)'
)
provides=('breezy-desktop-kwin')
conflicts=('breezy-desktop-kwin')
source=(
"git+https://github.com/wheaney/breezy-desktop.git"
"git+https://github.com/wheaney/sombrero.git"
"git+https://github.com/wheaney/PyXRLinuxDriverIPC.git"
)
sha256sums=('SKIP' 'SKIP' 'SKIP')
source=("git+${url}")
md5sums=(SKIP)
pkgver() {
cd "${srcdir}/breezy-desktop"
cd "${srcdir}/${_pkgbase}"
# Read version from VERSION file and replace hyphens with dots
version=$(cat VERSION)
echo "${version}" | tr '-' '.'
}
prepare() {
cd "${srcdir}/breezy-desktop"
# Set up submodule directories
mkdir -p modules/sombrero
mkdir -p ui/modules/PyXRLinuxDriverIPC
# Copy sombrero assets if available
if [ -d "${srcdir}/sombrero" ]; then
find "${srcdir}/sombrero" -name "*.png" -exec cp {} modules/sombrero/ \;
USER=${SUDO_USER:-$USER}
if [ -n "$USER" ]; then
USER_HOME=$(getent passwd $USER | cut -d: -f6)
if [ -e "$USER_HOME/.local/bin/breezy_kwin_uninstall" ]; then
echo "Please uninstall Breezy Desktop first using $USER_HOME/.local/bin/breezy_kwin_uninstall, then reattempt the AUR installation"
exit 1
fi
fi
# Copy PyXRLinuxDriverIPC if available
if [ -d "${srcdir}/PyXRLinuxDriverIPC" ]; then
find "${srcdir}/PyXRLinuxDriverIPC" -name "*.py" -exec cp {} ui/modules/PyXRLinuxDriverIPC/ \;
fi
# Copy required files for build
if [ -f ui/modules/PyXRLinuxDriverIPC/xrdriveripc.py ]; then
cp ui/modules/PyXRLinuxDriverIPC/xrdriveripc.py kwin/src/xrdriveripc/xrdriveripc.py
fi
cp VERSION kwin/
# Copy sombrero assets to qml directory if they exist
if [ "$(find modules/sombrero -name '*.png' 2>/dev/null | wc -l)" -gt 0 ]; then
cp modules/sombrero/*.png kwin/src/qml/
fi
cp ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg kwin/src/kcm/
}
build() {
cd "${srcdir}/breezy-desktop/kwin"
cd ${_pkgbase}
# init submodules (only required ones)
git submodule update --init --recursive modules/sombrero
git submodule update --init --recursive ui/modules/PyXRLinuxDriverIPC
# Copy required files for build
cp ui/modules/PyXRLinuxDriverIPC/xrdriveripc.py kwin/src/xrdriveripc/xrdriveripc.py
cp VERSION kwin/
cp modules/sombrero/*.png kwin/src/qml/
cp ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg kwin/src/kcm/
# Build KWin plugin
cd kwin
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
@ -100,14 +84,11 @@ build() {
}
package() {
cd "${srcdir}/breezy-desktop/kwin"
cd "${srcdir}/${_pkgbase}/kwin"
DESTDIR="${pkgdir}" cmake --install build
# Install scripts
install -Dm755 "${srcdir}/breezy-desktop/kwin/bin/breezy_kwin_uninstall" \
install -Dm755 "${srcdir}/${_pkgbase}/kwin/bin/breezy_kwin_uninstall" \
"${pkgdir}/usr/bin/breezy_kwin_uninstall"
# Install desktop entries for Wayland helpers (if SteamOS support is needed)
# These would typically be in the setup script, but we include them for reference
}

View File

@ -26,18 +26,17 @@ After installation:
2. Enable "Breezy Desktop" from the Desktop Effects in System Settings
3. Launch the Breezy Desktop application to configure settings
**Important**: If you have previously installed Breezy Desktop using the setup script, you must uninstall it first using `~/.local/bin/breezy_kwin_uninstall` before installing via AUR.
## Dependencies
The package requires:
- KDE Plasma 6 (KWin) with Wayland support
- Qt6 (base and declarative modules)
- KDE Frameworks 6 (config, configwidgets, coreaddons, globalaccel, i18n, kcmutils, windowsystem, xmlgui)
- KDE Frameworks 6 (kconfig, kconfigwidgets, kcoreaddons, kglobalaccel, ki18n, kcmutils, kwindowsystem, kxmlgui)
- Python 3
- libepoxy and libxcb
## Optional Dependencies
- `xr-driver-breezy-kwin-git` - XR driver backend (recommended for full functionality)
- xr-driver-git >= 2.0.0 (XR driver backend)
## Manual Build
@ -60,13 +59,25 @@ To publish or update this package on AUR:
- This package builds from the latest git source
- The version is automatically derived from the VERSION file in the repository
- Git submodules (sombrero, PyXRLinuxDriverIPC) are automatically initialized during build
- The package installs to system directories (/usr) following Arch Linux packaging standards
- Users must be on Wayland to use virtual display features
- For X11 users, only physical display features will work
- The prepare() step checks for existing script-based installations and will exit if found
## Structure
This PKGBUILD follows the same structure as the GNOME variant:
- Uses `_pkgbase` variable for consistency
- Initializes git submodules in build() step
- Checks for existing installations in prepare() step
- Uses md5sums for checksums
- License format matches GNOME package (GPL-3.0)
## See Also
- Main repository: https://github.com/wheaney/breezy-desktop
- GNOME variant: [breezy-desktop-gnome-git](https://aur.archlinux.org/packages/breezy-desktop-gnome-git) (already available in AUR)
- XR Driver: [xr-driver-breezy-gnome-git](https://aur.archlinux.org/packages/xr-driver-breezy-gnome-git) (for GNOME; KWin variant may vary)
- XR Driver: [xr-driver-git](https://aur.archlinux.org/packages/xr-driver-git)