{ lib, stdenvNoCC, fetchFromGitHub, gtk3, breeze-icons, elementary-icon-theme, hicolor-icon-theme, papirus-folders, color ? null, withElementary ? false, gitUpdater, }: stdenvNoCC.mkDerivation rec { pname = "papirus-icon-theme"; version = "20240501"; src = fetchFromGitHub { owner = "PapirusDevelopmentTeam"; repo = pname; rev = version; hash = "sha256-ZTijLslItfXRBUVKrz9KcOc78Efr5rRV+HfQckKcZSI="; }; nativeBuildInputs = [ gtk3 papirus-folders ]; propagatedBuildInputs = [ breeze-icons hicolor-icon-theme ] ++ lib.optional withElementary [ elementary-icon-theme ]; dontDropIconThemeCache = true; installPhase = '' runHook preInstall mkdir -p $out/share/icons mv ${lib.optionalString withElementary "{,e}"}Papirus* $out/share/icons for theme in $out/share/icons/*; do ${lib.optionalString ( color != null ) "${papirus-folders}/bin/papirus-folders -t $theme -o -C ${color}"} gtk-update-icon-cache --force $theme done runHook postInstall ''; passthru.updateScript = gitUpdater { }; meta = with lib; { description = "Pixel perfect icon theme for Linux"; homepage = "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme"; license = licenses.gpl3Only; # darwin gives hash mismatch in source, probably because of file names differing only in case platforms = platforms.linux; maintainers = with maintainers; [ romildo moni ]; }; }