1{ symlinkJoin
2, lib
3, makeWrapper
4, nemo
5, nemoExtensions
6, extensions ? [ ]
7, useDefaultExtensions ? true
8}:
9
10let
11 selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions nemoExtensions);
12in
13symlinkJoin {
14 name = "nemo-with-extensions-${nemo.version}";
15
16 paths = [ nemo ] ++ selectedExtensions;
17
18 nativeBuildInputs = [ makeWrapper ];
19
20 postBuild = ''
21 for f in $(find $out/bin/ $out/libexec/ -type l -not -path "*/.*"); do
22 wrapProgram "$f" \
23 --set "NEMO_EXTENSION_DIR" "$out/${nemo.extensiondir}" \
24 --set "NEMO_PYTHON_EXTENSION_DIR" "$out/share/nemo-python/extensions"
25 done
26
27 # Don't populate the same nemo actions twice when having this globally installed
28 # https://github.com/NixOS/nixpkgs/issues/190781#issuecomment-1365601853
29 rm -r $out/share/nemo/actions
30
31 # Point to wrapped binary in all service files
32 for file in "share/dbus-1/services/nemo.FileManager1.service" \
33 "share/dbus-1/services/nemo.service"
34 do
35 rm "$out/$file"
36 substitute "${nemo}/$file" "$out/$file" \
37 --replace "${nemo}" "$out"
38 done
39 '';
40
41 inherit (nemo) meta;
42}