{ lib, stdenvNoCC }: # Slot Beauty Dark Icons (gnome-look.org/p/2346341), not packaged in # nixpkgs. gnome-look/pling download links are signed JWTs that expire in # ~2 days, so fetchurl against one would work today and fail on the next # rebuild after that window — the tarball is vendored into the repo instead, # as verified (md5 8b3e3e1e03c667b7f988b78ad2bc18a6 against the gnome-look # API's reported checksum) at # dotfiles/icons/Slot-Beauty-Dark-Icons-V-2.tar.xz. stdenvNoCC.mkDerivation { pname = "slot-beauty-dark-icons"; version = "unstable-2026-07-24"; src = ../dotfiles/icons/Slot-Beauty-Dark-Icons-V-2.tar.xz; dontBuild = true; # Upstream ships dozens of dangling symlinks (icons aliased across sizes # that don't all exist) — same class of minor packaging bug as # azure-glassy-dark-icons. Harmless: GTK/Qt icon lookup falls through to # the theme's own Inherits= chain (breeze-dark, Adwaita, hicolor) for those. dontCheckForBrokenSymlinks = true; # index.theme's Directories= lists panel/16@2, panel/22@2, panel/24@2 (with # Scale=2), but the actual on-disk dirs are named 16@2x/22@2x/24@2x (the # correct freedesktop-spec suffix) — an upstream index.theme typo. That # mismatch makes `gtk-update-icon-cache` refuse to emit ANY cache at all # (exits 1, "The generated cache was invalid"), so unlike the other vendored # themes here, this one ships with no icon-theme.cache and relies on GTK's # live directory-scan lookup instead — functionally fine, just not # cache-accelerated. gtk3's default postFixup hook (dropIconThemeCache) # would strip a cache anyway, so there's nothing to opt out of. installPhase = '' runHook preInstall mkdir -p "$out/share/icons" cp -r . "$out/share/icons/Slot-Beauty-Dark-Icons-V-2" runHook postInstall ''; meta = { description = "Slot Beauty dark icon theme, vendored from gnome-look.org (not packaged in nixpkgs)"; homepage = "https://www.gnome-look.org/p/2346341"; license = lib.licenses.gpl3Only; platforms = lib.platforms.all; }; }