nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

159 lines
3.1 KiB
Nix
Raw Normal View History

{ mkDerivation
, lib
, extra-cmake-modules
, kdoctools
, wayland-scanner
, fetchpatch
, libepoxy
, lcms2
, libICE
, libSM
, libcap
, libdrm
, libinput
, libxkbcommon
, mesa
, pipewire
, udev
, wayland
, xcb-util-cursor
, xwayland
, plasma-wayland-protocols
, wayland-protocols
, libxcvt
, 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
, kwidgetsaddons
, kwindowsystem
, kxmlgui
, plasma-framework
, libqaccessibilityclient
2016-04-21 16:01:22 +00:00
}:
2020-01-27 14:29:51 +00:00
# TODO (ttuegel): investigate qmlplugindump failure
mkDerivation {
2022-03-06 21:28:56 +00:00
pname = "kwin";
nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ];
2017-05-26 20:44:36 +00:00
buildInputs = [
libepoxy
lcms2
libICE
libSM
libcap
libdrm
libinput
libxkbcommon
mesa
pipewire
udev
wayland
xcb-util-cursor
xwayland
libxcvt
plasma-wayland-protocols
wayland-protocols
2017-05-26 20:44:36 +00:00
qtdeclarative
qtmultimedia
qtquickcontrols2
qtscript
qtsensors
qtvirtualkeyboard
qtx11extras
2017-05-26 20:44:36 +00:00
breeze-qt5
kactivities
kcmutils
kcompletion
kconfig
kconfigwidgets
kcoreaddons
kcrash
kdeclarative
kdecoration
kglobalaccel
ki18n
kiconthemes
kidletime
kinit
kio
knewstuff
knotifications
kpackage
krunner
kscreenlocker
kservice
kwayland
kwidgetsaddons
kwindowsystem
kxmlgui
plasma-framework
libqaccessibilityclient
2021-05-07 15:57:25 +00:00
2016-04-21 16:01:22 +00:00
];
outputs = [ "out" "dev" ];
2022-05-20 16:13:19 +00:00
postPatch = ''
patchShebangs src/effects/strip-effect-metadata.py
'';
2020-01-27 14:29:51 +00:00
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
./0001-Lower-CAP_SYS_NICE-from-the-ambient-set.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=";
})
2020-01-27 14:29:51 +00:00
];
2023-02-13 23:00:57 +00:00
2018-01-16 13:38:07 +00:00
CXXFLAGS = [
2023-05-27 13:26:40 +00:00
''-DNIXPKGS_XWAYLAND=\"${lib.getExe xwayland}\"''
2023-03-06 14:04:16 +00:00
];
2023-02-14 08:05:44 +00:00
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!
2017-05-26 20:44:36 +00:00
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
'';
2016-04-21 16:01:22 +00:00
}