177 lines
3.2 KiB
Nix
177 lines
3.2 KiB
Nix
{ mkDerivation
|
|
, lib
|
|
, extra-cmake-modules
|
|
, kdoctools
|
|
, isocodes
|
|
, libdbusmenu
|
|
, libSM
|
|
, libXcursor
|
|
, libXtst
|
|
, libXft
|
|
, pam
|
|
, wayland
|
|
, xmessage
|
|
, xsetroot
|
|
, baloo
|
|
, breeze-qt5
|
|
, kactivities
|
|
, kactivities-stats
|
|
, kcmutils
|
|
, kconfig
|
|
, kcrash
|
|
, kdbusaddons
|
|
, kdeclarative
|
|
, kdelibs4support
|
|
, kdesu
|
|
, kglobalaccel
|
|
, kidletime
|
|
, kinit
|
|
, kjsembed
|
|
, knewstuff
|
|
, knotifyconfig
|
|
, kpackage
|
|
, kpeople
|
|
, krunner
|
|
, kscreenlocker
|
|
, ktexteditor
|
|
, ktextwidgets
|
|
, kwallet
|
|
, kwayland
|
|
, kwin
|
|
, kxmlrpcclient
|
|
, libkscreen
|
|
, libksysguard
|
|
, libqalculate
|
|
, networkmanager-qt
|
|
, phonon
|
|
, plasma-framework
|
|
, prison
|
|
, solid
|
|
, kholidays
|
|
, kquickcharts
|
|
, appstream-qt
|
|
, plasma-wayland-protocols
|
|
, kpipewire
|
|
, libkexiv2
|
|
, kuserfeedback
|
|
, qtgraphicaleffects
|
|
, qtquickcontrols
|
|
, qtquickcontrols2
|
|
, qtscript
|
|
, qttools
|
|
, qtwayland
|
|
, qtx11extras
|
|
, qqc2-desktop-style
|
|
, polkit-qt
|
|
, pipewire
|
|
, libdrm
|
|
, fetchpatch
|
|
}:
|
|
|
|
let inherit (lib) getBin getLib; in
|
|
|
|
mkDerivation {
|
|
pname = "plasma-workspace";
|
|
passthru.providedSessions = [ "plasma" "plasmawayland" ];
|
|
|
|
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
|
|
buildInputs = [
|
|
isocodes
|
|
libdbusmenu
|
|
libSM
|
|
libXcursor
|
|
libXtst
|
|
libXft
|
|
pam
|
|
wayland
|
|
|
|
baloo
|
|
kactivities
|
|
kactivities-stats
|
|
kcmutils
|
|
kconfig
|
|
kcrash
|
|
kdbusaddons
|
|
kdeclarative
|
|
kdelibs4support
|
|
kdesu
|
|
kglobalaccel
|
|
kidletime
|
|
kjsembed
|
|
knewstuff
|
|
knotifyconfig
|
|
kpackage
|
|
kpeople
|
|
krunner
|
|
kscreenlocker
|
|
ktexteditor
|
|
ktextwidgets
|
|
kwallet
|
|
kwayland
|
|
kwin
|
|
kxmlrpcclient
|
|
libkscreen
|
|
libksysguard
|
|
libqalculate
|
|
networkmanager-qt
|
|
phonon
|
|
plasma-framework
|
|
prison
|
|
solid
|
|
kholidays
|
|
kquickcharts
|
|
appstream-qt
|
|
plasma-wayland-protocols
|
|
kpipewire
|
|
libkexiv2
|
|
|
|
kuserfeedback
|
|
qtgraphicaleffects
|
|
qtquickcontrols
|
|
qtquickcontrols2
|
|
qtscript
|
|
qtwayland
|
|
qtx11extras
|
|
qqc2-desktop-style
|
|
polkit-qt
|
|
|
|
pipewire
|
|
libdrm
|
|
];
|
|
propagatedUserEnvPkgs = [ qtgraphicaleffects ];
|
|
outputs = [ "out" "dev" ];
|
|
|
|
cmakeFlags = [
|
|
''-DNIXPKGS_BREEZE_WALLPAPERS=${getBin breeze-qt5}/share/wallpapers''
|
|
];
|
|
|
|
patches = [
|
|
./0001-startkde.patch
|
|
./0002-absolute-wallpaper-install-dir.patch
|
|
|
|
# Backport patch for cleaner shutdowns
|
|
(fetchpatch {
|
|
url = "https://invent.kde.org/plasma/plasma-workspace/-/commit/6ce8f434139f47e6a71bf0b68beae92be8845ce4.patch";
|
|
hash = "sha256-cYw/4/9tSnCbArLr72O8F8V0NLkVXdCVnJGoGxSzZMg=";
|
|
})
|
|
];
|
|
|
|
# QT_INSTALL_BINS refers to qtbase, and qdbus is in qttools
|
|
postPatch = ''
|
|
substituteInPlace CMakeLists.txt \
|
|
--replace 'ecm_query_qt(QtBinariesDir QT_INSTALL_BINS)' 'set(QtBinariesDir "${lib.getBin qttools}/bin")'
|
|
'';
|
|
|
|
# work around wrapQtAppsHook double-wrapping kcminit_startup,
|
|
# which is a symlink to kcminit
|
|
postFixup = ''
|
|
ln -sf $out/bin/kcminit $out/bin/kcminit_startup
|
|
'';
|
|
|
|
env.NIX_CFLAGS_COMPILE = toString [
|
|
''-DNIXPKGS_XMESSAGE="${getBin xmessage}/bin/xmessage"''
|
|
''-DNIXPKGS_XSETROOT="${getBin xsetroot}/bin/xsetroot"''
|
|
''-DNIXPKGS_START_KDEINIT_WRAPPER="${getLib kinit}/libexec/kf5/start_kdeinit_wrapper"''
|
|
''-DNIXPKGS_KDEINIT5_SHUTDOWN="${getBin kinit}/bin/kdeinit5_shutdown"''
|
|
];
|
|
}
|