# Maintainer: Holo Team
# Contributor: Felix Yan <felixonmars@archlinux.org>
# Contributor: Antonio Rojas <arojas@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>

pkgname=kwin
pkgver=6.4.3
_dirver=$(echo $pkgver | cut -d. -f1-3)
pkgrel=1.11 # kwin: pass fullscreen correctly to X11 backend
pkgdesc='An easy to use, but flexible, Wayland compositor'
arch=(x86_64)
url='https://kde.org/plasma-desktop/'
license=(LGPL-2.0-or-later)
depends=(aurorae
         breeze
         gcc-libs
         glibc
         plasma-activities
         kauth
         kcmutils
         kcolorscheme
         kconfig
         kcoreaddons
         kcrash
         kdbusaddons
         kdeclarative
         kdecoration
         kglobalaccel
         kglobalacceld
         kguiaddons
         ki18n
         kidletime
         kirigami
         kitemmodels
         knewstuff
         knotifications
         kpackage
         kquickcharts
         kscreenlocker
         kservice
         ksvg
         kwayland
         kwidgetsaddons
         kwindowsystem
         kxmlgui
         lcms2
         libcanberra
         libdisplay-info
         libdrm
         libei
         libepoxy
         libinput
         libpipewire
         libqaccessibilityclient-qt6
         libxcb
         libxcvt
         libxkbcommon
         mesa
         pipewire-session-manager
         libplasma
         qt6-5compat
         qt6-base
         qt6-declarative
         qt6-sensors
         qt6-svg
         qt6-tools
         systemd-libs
         wayland
         xcb-util-cursor
         xcb-util-keysyms
         xcb-util-wm)
makedepends=(extra-cmake-modules
             kdoctools
             krunner
             plasma-wayland-protocols
             python
             wayland-protocols
             xorg-xwayland)
optdepends=('maliit-keyboard: virtual keyboard')
groups=(plasma)
source=(https://download.kde.org/stable/plasma/$_dirver/$pkgname-$pkgver.tar.xz{,.sig}
        0001-backends-libinput-prefer-output-UUID-over-output-nam.patch # Drop in 6.5
        0002-Load-current-brightness-from-device.patch # Keep screen brightness from gamescope, track at https://bugs.kde.org/show_bug.cgi?id=508163
        0003-Outputconfigurationstore-default-to-internal-display.patch # Deck specific for default scale
        0004-simulate-full-keyboard-handling-in-testFakeEve.patch # Drop in 6.5
        0005-Support-arbitrary-keysyms-in-libei.patch # Currently deck specific, relies on unreleased libei feature that we also patch
        0006-inputmethod-Skip-input-events-from-fake-input.patch #Currently deck specific, a workaround for the Steam OSK. Test CJK input with both SteamOSK and a physical keyboard both work before dropping
        0006-inputmethod-Improve-keysym-lookup-from-input-methods.patch # Drop in 6.5
        0007-outputconfigurationstore-add-special-casing-for-the-.patch # Drop in 6.6
        0008-backends-libinput-Fix-dangling-InputDevices-on-shutd.patch # Drop in 6.7
        0009-Fix-passing-fullscreen-to-the-X11-backend.patch # Drop after upstreaming
        )
install=$pkgname.install
sha256sums=('a13568c918eca7803eb44a3a2778b860edc3f03b36797851c4f3aeeed4b502a8'
            'SKIP'
            '4c24a5b9d2b181f3c4d7f4927f760d2302702eeae67592112bcb35a6c1d3a0af'
            '887985706783d2658637548c8a63220397b9ebbd8fc425839d99c6138e8f19b8'
            '9417723b2a2c2ff81b914707edf6dd759ec1fa729eb80fea0719e1722b004a55'
            '31997f384c70c673624858bd0957a7a136afbc03cd95780e1e32cc7baf00d5e9'
            '744064387c3c8ef07e6fdf761727d783be5de0c3639ea3e24ea078d5dc475633'
            'bf08aae2967d3cd4202ee27004eff2feedc98163626fd98f96b7d2acae40dc38'
            '7df6f28e7b6945ffcd29ec363b9f3a2b902d65350b93dd1f85ca95b0a9290770'
            '3beeafa65cdd74fffd2cd8c2a704fb2ffa5fc8e3e2124180744ade6bdfb3a519'
            '6959025844eb0fd99687f539d6bcedb5dd4a48f5626ecbf8184cacb065f7ab1a'
            '264086d1982cb034811d6239ee59ad3c2f3f611a32b42cfc9dcc596c6baf4d11')

validpgpkeys=('E0A3EB202F8E57528E13E72FD7574483BB57B18D'  # Jonathan Esk-Riddell <jr@jriddell.org>
              '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D'  # Bhushan Shah <bshah@kde.org>
              'D07BD8662C56CB291B316EB2F5675605C74E02CF'  # David Edmundson <davidedmundson@kde.org>
              '90A968ACA84537CC27B99EAF2C8DF587A6D4AAC1'  # Nicolas Fella <nicolas.fella@kde.org>
              '1FA881591C26B276D7A5518EEAAF29B42A678C20') # Marco Martin <notmart@gmail.com>

prepare() {
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0001-backends-libinput-prefer-output-UUID-over-output-nam.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0002-Load-current-brightness-from-device.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0003-Outputconfigurationstore-default-to-internal-display.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0004-simulate-full-keyboard-handling-in-testFakeEve.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0005-Support-arbitrary-keysyms-in-libei.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0006-inputmethod-Skip-input-events-from-fake-input.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0006-inputmethod-Improve-keysym-lookup-from-input-methods.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0007-outputconfigurationstore-add-special-casing-for-the-.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0008-backends-libinput-Fix-dangling-InputDevices-on-shutd.patch"
  patch -p1 -d "$srcdir/$pkgname-$pkgver" -i "$srcdir/0009-Fix-passing-fullscreen-to-the-X11-backend.patch" # Drop after 6.7.0
}

build() {
  cmake -B build  -S $pkgname-$pkgver \
    -DCMAKE_INSTALL_LIBEXECDIR=lib \
    -DBUILD_TESTING=OFF
  cmake --build build
}

package() {
  DESTDIR="$pkgdir" cmake --install build
}
