diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix new file mode 100644 index 000000000000..db0485db8873 --- /dev/null +++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix @@ -0,0 +1,65 @@ +{ + mkDerivation, lib, + extra-cmake-modules, kdoctools, fetchpatch, + + libepoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa, + pipewire, udev, wayland, xcb-util-cursor, xwayland, + + qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors, + qtvirtualkeyboard, qtx11extras, + + breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets, + kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n, + kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage, + krunner, kscreenlocker, kservice, kwayland, kwayland-server, kwidgetsaddons, + kwindowsystem, kxmlgui, plasma-framework, libqaccessibilityclient, +}: + +# TODO (ttuegel): investigate qmlplugindump failure + +mkDerivation { + pname = "kwin"; + nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + buildInputs = [ + libepoxy lcms2 libICE libSM libcap libdrm libinput libxkbcommon mesa pipewire + udev wayland xcb-util-cursor xwayland + + qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors + qtvirtualkeyboard qtx11extras + + breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets + kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes + kidletime kinit kio knewstuff knotifications kpackage krunner kscreenlocker + kservice kwayland kwayland-server kwidgetsaddons kwindowsystem kxmlgui + plasma-framework libqaccessibilityclient + + ]; + outputs = [ "out" "dev" ]; + patches = [ + ./0001-follow-symlinks.patch + ./0002-xwayland.patch + ./0003-plugins-qpa-allow-using-nixos-wrapper.patch + ./0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch + # Pass special environments through arguemnts to `kwin_wayland`, bypassing + # ld.so(8) environment stripping due to `kwin_wayland`'s capabilities. + # We need this to have `TZDIR` correctly set for `plasmashell`, or + # everything related to timezone, like clock widgets, will be broken. + # https://invent.kde.org/plasma/kwin/-/merge_requests/1590 + (fetchpatch { + url = "https://invent.kde.org/plasma/kwin/-/commit/9a008b223ad696db3bf5692750f2b74e578e08b8.diff"; + sha256 = "sha256-f35G+g2MVABLDbAkCed3ZmtDWrzYn1rdD08mEx35j4k="; + }) + ]; + CXXFLAGS = [ + ''-DNIXPKGS_XWAYLAND=\"${lib.getBin xwayland}/bin/Xwayland\"'' + ]; + cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF" ]; + postInstall = '' + # Some package(s) refer to these service types by the wrong name. + # I would prefer to patch those packages, but I cannot find them! + ln -s ''${!outputBin}/share/kservicetypes5/kwineffect.desktop \ + ''${!outputBin}/share/kservicetypes5/kwin-effect.desktop + ln -s ''${!outputBin}/share/kservicetypes5/kwinscript.desktop \ + ''${!outputBin}/share/kservicetypes5/kwin-script.desktop + ''; +} |