summary refs log tree commit diff
path: root/pkgs/desktops/plasma-5/plasma-workspace/default.nix
blob: 0e98b095e893ecc489f2639bbc0dccbafdccc1d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{
  mkDerivation, lib,

  extra-cmake-modules, kdoctools,

  coreutils, dbus, gnugrep, gnused, isocodes, libdbusmenu, libSM, libXcursor,
  libXtst, pam, wayland, xmessage, xprop, xrdb, xsetroot,

  baloo, kactivities, kcmutils, kconfig, kcrash, kdbusaddons, kdeclarative,
  kdelibs4support, kdesu, kglobalaccel, kidletime, kinit, kjsembed, knewstuff,
  knotifyconfig, kpackage, krunner, kscreenlocker, ktexteditor, ktextwidgets,
  kwallet, kwayland, kwin, kxmlrpcclient, libkscreen, libksysguard,
  networkmanager-qt, phonon, plasma-framework, prison, solid,

  qtgraphicaleffects, qtquickcontrols, qtquickcontrols2, qtscript, qttools,
  qtwayland, qtx11extras,
}:

let inherit (lib) getBin getLib; in

mkDerivation {
  name = "plasma-workspace";

  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
  buildInputs = [
    isocodes libdbusmenu libSM libXcursor libXtst pam wayland

    baloo kactivities kcmutils kconfig kcrash kdbusaddons kdeclarative
    kdelibs4support kdesu kglobalaccel kidletime kjsembed knewstuff
    knotifyconfig kpackage krunner kscreenlocker ktexteditor ktextwidgets
    kwallet kwayland kwin kxmlrpcclient libkscreen libksysguard
    networkmanager-qt phonon plasma-framework prison solid

    qtgraphicaleffects qtquickcontrols qtquickcontrols2 qtscript qtwayland qtx11extras
  ];
  outputs = [ "bin" "dev" "out" ];

  cmakeFlags = [
    "-DNIXPKGS_XMESSAGE=${getBin xmessage}/bin/xmessage"
    "-DNIXPKGS_MKDIR=${getBin coreutils}/bin/mkdir"
    "-DNIXPKGS_XRDB=${getBin xrdb}/bin/xrdb"
    "-DNIXPKGS_QTPATHS=${getBin qttools}/bin/qtpaths"
    "-DNIXPKGS_XSETROOT=${getBin xsetroot}/bin/xsetroot"
    "-DNIXPKGS_XPROP=${getBin xprop}/bin/xprop"
    "-DNIXPKGS_ID=${getBin coreutils}/bin/id"
    "-DNIXPKGS_DBUS_UPDATE_ACTIVATION_ENVIRONMENT=${getBin dbus}/bin/dbus-update-activation-environment"
    "-DNIXPKGS_START_KDEINIT_WRAPPER=${getLib kinit}/lib/libexec/kf5/start_kdeinit_wrapper"
    "-DNIXPKGS_QDBUS=${getBin qttools}/bin/qdbus"
    "-DNIXPKGS_KWRAPPER5=${getBin kinit}/bin/kwrapper5"
    "-DNIXPKGS_KREADCONFIG5=${getBin kconfig}/bin/kreadconfig5"
    "-DNIXPKGS_GREP=${getBin gnugrep}/bin/grep"
    "-DNIXPKGS_KDEINIT5_SHUTDOWN=${getBin kinit}/bin/kdeinit5_shutdown"
    "-DNIXPKGS_SED=${getBin gnused}/bin/sed"
  ];

  # To regenerate ./plasma-workspace.patch,
  #
  # > git clone https://github.com/ttuegel/plasma-workspace
  # > cd plasma-workspace
  # > git checkout nixpkgs/$x.$y  # where $x.$y.$z == $version
  # ... make some commits ...
  # > git diff v$x.$y.$z
  #
  # Add upstream patches to the list below. For new patchs, particularly if not
  # submitted upstream, please make a pull request and add it to
  # ./plasma-workspace.patch.
  patches = [ ./plasma-workspace.patch ];

  preConfigure = ''
    NIX_CFLAGS_COMPILE+=" -DNIXPKGS_KDOSTARTUPCONFIG5=\"''${!outputBin}/bin/kdostartupconfig5\""
    cmakeFlags+=" -DNIXPKGS_STARTPLASMA=''${!outputBin}/lib/libexec/startplasma"
  '';

  postInstall = ''
    moveToOutput lib/libexec/startplasma ''${!outputBin}
  '';
}