nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 60 lines 1.5 kB view raw
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}