This is an example how to define plymouth with your own logo derivation. Isn't this the most beautiful?
boot = {
plymouth = {
enable = true;
theme = "breeze";
logo = pkgs.stdenv.mkDerivation {
name = "out.png";
dontUnpack = true;
src = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/refs/heads/master/logo/nix-snowflake-rainbow.svg";
sha256 = "sha256-gMeJgiSSA5hFwtW3njZQAd4OHji6kbRCJKVoN6zsRbY=";
};
nativeBuildInputs = with pkgs; [imagemagick];
buildPhase = ''
magick -background none -size 200x200 $src nix-snowflake-rainbow.png
'';
installPhase = ''
install -Dm0644 nix-snowflake-rainbow.png $out
'';
};
};
Simply because nix is a functional programing language, not just a data representation.