From 239d44557a78d34bd20181fff11711e64338c4ad Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Thu, 22 Feb 2024 23:55:54 +0800 Subject: mate.caja-with-extensions: Reimplement using lndir This installs missing desktop files and icons and allows dropping the caja-extensions hardcode gsettings patch. --- pkgs/desktops/mate/caja/with-extensions.nix | 61 +++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 pkgs/desktops/mate/caja/with-extensions.nix (limited to 'pkgs/desktops/mate/caja') diff --git a/pkgs/desktops/mate/caja/with-extensions.nix b/pkgs/desktops/mate/caja/with-extensions.nix new file mode 100644 index 000000000000..b9a55b4b9209 --- /dev/null +++ b/pkgs/desktops/mate/caja/with-extensions.nix @@ -0,0 +1,61 @@ +{ stdenv +, lib +, glib +, wrapGAppsHook +, xorg +, caja +, cajaExtensions +, extensions ? [ ] +, useDefaultExtensions ? true +}: + +let + selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions cajaExtensions); +in +stdenv.mkDerivation { + pname = "${caja.pname}-with-extensions"; + version = caja.version; + + src = null; + + nativeBuildInputs = [ + glib + wrapGAppsHook + ]; + + buildInputs = lib.forEach selectedExtensions (x: x.buildInputs) ++ selectedExtensions + ++ [ caja ] ++ caja.buildInputs; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + preferLocalBuild = true; + allowSubstitutes = false; + + installPhase = '' + runHook preInstall + + mkdir -p $out + ${xorg.lndir}/bin/lndir -silent ${caja} $out + + dbus_service_path="share/dbus-1/services/org.mate.freedesktop.FileManager1.service" + rm -f $out/share/applications/* "$out/$dbus_service_path" + for file in ${caja}/share/applications/*; do + substitute "$file" "$out/share/applications/$(basename $file)" \ + --replace-fail "${caja}" "$out" + done + substitute "${caja}/$dbus_service_path" "$out/$dbus_service_path" \ + --replace-fail "${caja}" "$out" + + runHook postInstall + ''; + + preFixup = lib.optionalString (selectedExtensions != [ ]) '' + gappsWrapperArgs+=( + --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") selectedExtensions} + ) + ''; + + inherit (caja.meta); +} -- cgit 1.4.1