191 lines
3.3 KiB
Nix
191 lines
3.3 KiB
Nix
{
|
|
mkDerivation,
|
|
lib,
|
|
extra-cmake-modules,
|
|
kdoctools,
|
|
wayland-scanner,
|
|
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
|
|
wayland-scanner
|
|
];
|
|
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"''
|
|
];
|
|
}
|