summary refs log tree commit diff
path: root/pkgs/applications/window-managers/xmonad/wrapper.nix
blob: cddaeb5f799f2eb3938740a19e8434335481546e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{ stdenv, buildEnv, ghcWithPackages, xmessage, makeWrapper, packages }:

let
xmonadEnv = ghcWithPackages (self: [ self.xmonad ] ++ packages self);
drv = buildEnv {
  name = "xmonad-with-packages";

  paths = [ xmonadEnv ];

  postBuild = ''
    # TODO: This could be avoided if buildEnv could be forced to create all directories
    rm $out/bin
    mkdir $out/bin
    for i in ${xmonadEnv}/bin/*; do
      ln -s $i $out/bin
    done
    wrapProgram $out/bin/xmonad \
      --set XMONAD_GHC "${xmonadEnv}/bin/ghc" \
      --set XMONAD_XMESSAGE "${xmessage}/bin/xmessage"
  '';
  };
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })