1{
2 stdenvNoCC,
3 lib,
4 wrapGAppsHook3,
5 gdk-pixbuf,
6 librsvg,
7 xorg,
8 shared-mime-info,
9}:
10
11timeshift-unwrapped: runtimeDeps:
12stdenvNoCC.mkDerivation {
13 inherit (timeshift-unwrapped) pname version;
14
15 dontUnpack = true;
16
17 nativeBuildInputs = [
18 wrapGAppsHook3
19 xorg.lndir
20 ];
21
22 installPhase = ''
23 runHook preInstall
24 mkdir -p "$out"
25 lndir "${timeshift-unwrapped}" "$out"
26 runHook postInstall
27 '';
28
29 dontWrapGApps = true;
30
31 preFixup = ''
32 makeWrapperArgs=(
33 --prefix PATH : "${lib.makeBinPath runtimeDeps}"
34 )
35 gappsWrapperArgs+=(
36 # Thumbnailers
37 --prefix XDG_DATA_DIRS : "${
38 lib.makeSearchPath "share" [
39 gdk-pixbuf
40 librsvg
41 shared-mime-info
42 ]
43 }"
44 "''${makeWrapperArgs[@]}"
45 )
46 wrapProgram "$out/bin/timeshift" "''${makeWrapperArgs[@]}"
47 wrapProgram "$out/bin/timeshift-gtk" "''${gappsWrapperArgs[@]}"
48 # Substitute app_command to look for the `timeshift-gtk` in $out.
49 unlink "$out/bin/timeshift-launcher"
50 substitute ${lib.getExe' timeshift-unwrapped "timeshift-launcher"} "$out/bin/timeshift-launcher" \
51 --replace-fail "app_command=${lib.getExe' timeshift-unwrapped "timeshift-gtk"}" "app_command=$out/bin/timeshift-gtk"
52 chmod +x "$out/bin/timeshift-launcher"
53 '';
54
55 inherit (timeshift-unwrapped) meta;
56}