depot/third_party/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
Default email 5e7c2d6cef Project import generated by Copybara.
GitOrigin-RevId: f99e5f03cc0aa231ab5950a15ed02afec45ed51a
2023-10-09 21:29:22 +02:00

145 lines
2.8 KiB
Nix

{ 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 ]}" ];
}