nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 symlinkJoin,
3 lib,
4 rofi-unwrapped,
5 makeWrapper,
6 wrapGAppsHook3,
7 gdk-pixbuf,
8 hicolor-icon-theme,
9 theme ? null,
10 plugins ? [ ],
11 symlink-dmenu ? false,
12}:
13
14symlinkJoin {
15 name = "rofi-${rofi-unwrapped.version}";
16
17 paths = [
18 rofi-unwrapped.out
19 ]
20 ++ (lib.forEach plugins (p: p.out));
21
22 nativeBuildInputs = [
23 makeWrapper
24 wrapGAppsHook3
25 ];
26 buildInputs = [ gdk-pixbuf ];
27
28 preferLocalBuild = true;
29 passthru.unwrapped = rofi-unwrapped;
30
31 dontWrapGApps = true;
32
33 postBuild = ''
34 rm -rf $out/bin
35 mkdir $out/bin
36 ln -s ${rofi-unwrapped}/bin/* $out/bin
37 rm $out/bin/rofi
38
39 gappsWrapperArgsHook
40 makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \
41 ''${gappsWrapperArgs[@]} \
42 --prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \
43 ${
44 lib.optionalString (plugins != [ ])
45 ''--prefix XDG_DATA_DIRS : ${lib.concatStringsSep ":" (lib.forEach plugins (p: "${p.out}/share"))}''
46 } \
47 ${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \
48 ${lib.optionalString (plugins != [ ]) ''--add-flags "-plugin-path $out/lib/rofi"''}
49
50 ${lib.optionalString symlink-dmenu "ln -s ${rofi-unwrapped}/bin/rofi $out/bin/dmenu"}
51
52 rm $out/bin/rofi-theme-selector
53 makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \
54 --prefix XDG_DATA_DIRS : $out/share
55 '';
56
57 meta = rofi-unwrapped.meta // {
58 priority = (rofi-unwrapped.meta.priority or lib.meta.defaultPriority) - 1;
59 };
60}