{ mkDerivation, lib, extra-cmake-modules, kdoctools, wayland-scanner, boost, fontconfig, ibus, libXcursor, libXft, libcanberra_kde, libpulseaudio, libxkbfile, xf86inputevdev, xf86inputsynaptics, xinput, xkeyboard_config, xorgserver, util-linux, wayland, wayland-protocols, accounts-qt, qtdeclarative, qtquickcontrols, qtquickcontrols2, qtsvg, qtx11extras, attica, baloo, kaccounts-integration, kactivities, kactivities-stats, kauth, kcmutils, kdbusaddons, kdeclarative, kded, kdelibs4support, kemoticons, kglobalaccel, ki18n, kitemmodels, knewstuff, knotifications, knotifyconfig, kpeople, krunner, kscreenlocker, kwallet, kwin, phonon, plasma-framework, plasma-workspace, qqc2-desktop-style, xf86inputlibinput, glib, gsettings-desktop-schemas, runCommandLocal, makeWrapper, }: let # run gsettings with desktop schemas for using in "kcm_access" kcm # and in kaccess gsettings-wrapper = runCommandLocal "gsettings-wrapper" { nativeBuildInputs = [ makeWrapper ]; } '' mkdir -p $out/bin makeWrapper ${glib}/bin/gsettings $out/bin/gsettings --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas.out}/share/gsettings-schemas/${gsettings-desktop-schemas.name} ''; in mkDerivation { pname = "plasma-desktop"; nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ]; buildInputs = [ boost fontconfig ibus libcanberra_kde libpulseaudio libXcursor libXft xorgserver libxkbfile phonon xf86inputlibinput xf86inputevdev xf86inputsynaptics xinput xkeyboard_config wayland wayland-protocols accounts-qt qtdeclarative qtquickcontrols qtquickcontrols2 qtsvg qtx11extras attica baloo kaccounts-integration kactivities kactivities-stats kauth kcmutils kdbusaddons kdeclarative kded kdelibs4support kemoticons kglobalaccel ki18n kitemmodels knewstuff knotifications knotifyconfig kpeople krunner kscreenlocker kwallet kwin plasma-framework plasma-workspace qqc2-desktop-style ]; patches = [ ./hwclock-path.patch ./tzdir.patch ./kcm-access.patch ./no-discover-shortcut.patch ]; CXXFLAGS = [ ''-DNIXPKGS_HWCLOCK=\"${lib.getBin util-linux}/bin/hwclock\"'' ''-DNIXPKGS_GSETTINGS=\"${gsettings-wrapper}/bin/gsettings\"'' ]; postInstall = '' # Display ~/Desktop contents on the desktop by default. sed -i "''${!outputBin}/share/plasma/shells/org.kde.plasma.desktop/contents/defaults" \ -e 's/Containment=org.kde.desktopcontainment/Containment=org.kde.plasma.folder/' ''; # wrap kaccess with wrapped gsettings so it can access accessibility schemas qtWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ gsettings-wrapper ]}" ]; }