62 lines
1.2 KiB
Nix
62 lines
1.2 KiB
Nix
|
{ stdenv
|
||
|
, lib
|
||
|
, glib
|
||
|
, wrapGAppsHook
|
||
|
, xorg
|
||
|
, marco
|
||
|
, mate-panel
|
||
|
, panelApplets
|
||
|
, applets ? [ ]
|
||
|
, useDefaultApplets ? true
|
||
|
}:
|
||
|
|
||
|
let
|
||
|
selectedApplets = applets ++ (lib.optionals useDefaultApplets panelApplets);
|
||
|
in
|
||
|
stdenv.mkDerivation {
|
||
|
pname = "${mate-panel.pname}-with-applets";
|
||
|
version = mate-panel.version;
|
||
|
|
||
|
src = null;
|
||
|
|
||
|
paths = [ mate-panel ] ++ selectedApplets;
|
||
|
passAsFile = [ "paths" ];
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
glib
|
||
|
wrapGAppsHook
|
||
|
];
|
||
|
|
||
|
buildInputs = lib.forEach selectedApplets (x: x.buildInputs) ++ selectedApplets
|
||
|
++ [ mate-panel ] ++ mate-panel.buildInputs ++ mate-panel.propagatedBuildInputs;
|
||
|
|
||
|
dontUnpack = true;
|
||
|
dontConfigure = true;
|
||
|
dontBuild = true;
|
||
|
|
||
|
preferLocalBuild = true;
|
||
|
allowSubstitutes = false;
|
||
|
|
||
|
installPhase = ''
|
||
|
runHook preInstall
|
||
|
|
||
|
mkdir -p $out
|
||
|
for i in $(cat $pathsPath); do
|
||
|
${xorg.lndir}/bin/lndir -silent $i $out
|
||
|
done
|
||
|
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
preFixup = ''
|
||
|
gappsWrapperArgs+=(
|
||
|
--set MATE_PANEL_APPLETS_DIR "$out/share/mate-panel/applets"
|
||
|
--set MATE_PANEL_EXTRA_MODULES "$out/lib/mate-panel/applets"
|
||
|
# Workspace switcher settings
|
||
|
--prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
|
||
|
)
|
||
|
'';
|
||
|
|
||
|
inherit (mate-panel.meta);
|
||
|
}
|