Update KWin PKGBUILD to match GNOME structure and style
Co-authored-by: wheaney <42350981+wheaney@users.noreply.github.com>
This commit is contained in:
parent
4d1b7abba0
commit
dfe7033171
107
PKGBUILD.kwin
107
PKGBUILD.kwin
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue