Change:
isolinuxCfg = concatStringsSep "n" ([ baseIsolinuxCfg ] ++ optional config.boot.loader.grub.memtest86.enable isolinuxMemtest86Entry); <ins> # Setup instructions for rEFInd. refind = if targetArch == "x64" then '' # Adds rEFInd to the ISO. cp -v ${pkgs.refind}/share/refind/refind_x64.efi $out/EFI/boot/ '' else "# No refind for ia32" ; grubMenuCfg = '' # # Menu configuration # insmod gfxterm insmod png set gfxpayload=keep # Fonts can be loaded? # (This font is assumed to always be provided as a fallback by NixOS) if loadfont (hd0)/EFI/boot/unicode.pf2; then # Use graphical term, it can be either with background image or a theme. # input is "console", while output is "gfxterm". # This enables "serial" input and output only when possible. # Otherwise the failure mode is to not even enable gfxterm. if test "$with_serial" == "yes"; then terminal_output gfxterm serial terminal_input  console serial else terminal_output gfxterm terminal_input  console fi else # Sets colors for the non-graphical term. set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi ${ # When there is a theme configured, use it, otherwise use the background image. if (!isNull config.isoImage.grubTheme) then '' # Sets theme. set theme=(hd0)/EFI/boot/grub-theme/theme.txt # Load theme fonts $(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (hd0)/EFI/boot/grub-theme/%Pn") '' else '' if background_image (hd0)/EFI/boot/efi-background.png; then # Black background means transparent background when there # is a background image set... This seems undocumented :( set color_normal=black/black set color_highlight=white/blue else # Falls back again to proper colors. set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi ''} ''; </ins> # The EFI boot image. <ins> # Notes about grub: #  * Yes, the grubMenuCfg has to be repeated in all submenus. Otherwise you #    will get white-on-black console-like text on sub-menus. *sigh* </ins> efiDir = pkgs.runCommand "efi-directory" {} '' <del> mkdir -p $out/EFI/boot cp -v ${pkgs.systemd}/lib/systemd/boot/efi/systemd-boot${targetArch}.efi $out/EFI/boot/boot${targetArch}.efi mkdir -p $out/loader/entries cat << EOF > $out/loader/entries/nixos-iso.conf title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} linux /boot/${config.system.boot.loader.kernelFile} initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} EOF # A variant to boot with 'nomodeset' cat << EOF > $out/loader/entries/nixos-iso-nomodeset.conf title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} version nomodeset linux /boot/${config.system.boot.loader.kernelFile} initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset EOF # A variant to boot with 'copytoram' cat << EOF > $out/loader/entries/nixos-iso-copytoram.conf title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} version copytoram linux /boot/${config.system.boot.loader.kernelFile} initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram </del> <ins> mkdir -p $out/EFI/boot/ MODULES="fat iso9660 part_gpt part_msdos  normal boot linux configfile loopback chain halt  efifwsetup efi_gop efi_uga  ls search search_label search_fs_uuid search_fs_file  gfxmenu gfxterm gfxterm_background gfxterm_menu test all_video loadenv  exfat ext2 ntfs btrfs hfsplus udf  videoinfo png  echo serial  " # Make our own efi program, we can't rely on "grub-install" since it seems to # probe for devices, even with --skip-fs-probe. ${pkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/bootx64.efi -p /EFI/boot -O x86_64-efi  $MODULES cp ${pkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/ cat <<EOF > $out/EFI/boot/grub.cfg # If you want to use serial for "terminal_*" commands, you need to set one up: #   Example manual configuration: #    → serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 # This uses the defaults, and makes the serial terminal available. set with_serial=no if serial; then set with_serial=yes ;fi export with_serial clear set timeout=10 ${grubMenuCfg} # # Menu entries # ${buildMenuGrub2 config} submenu "HiDPI, Quirks and Accessibility" --class hidpi --class submenu { ${grubMenuCfg} submenu "Suggests resolution @720p" --class hidpi-720p { ${grubMenuCfg} ${buildMenuAdditionalParamsGrub2 config "video=1280x720@60"} } submenu "Suggests resolution @1080p" --class hidpi-1080p { ${grubMenuCfg} ${buildMenuAdditionalParamsGrub2 config "video=1920x1080@60"} } # Some laptop and convertibles have the panel installed in an # inconvenient way, rotated away from the keyboard. # Those entries makes it easier to use the installer. submenu "" {return} submenu "Rotate framebuffer Clockwise" --class rotate-90cw { ${grubMenuCfg} ${buildMenuAdditionalParamsGrub2 config "fbcon=rotate:1"} } submenu "Rotate framebuffer Upside-Down" --class rotate-180 { ${grubMenuCfg} ${buildMenuAdditionalParamsGrub2 config "fbcon=rotate:2"} } submenu "Rotate framebuffer Counter-Clockwise" --class rotate-90ccw { ${grubMenuCfg} ${buildMenuAdditionalParamsGrub2 config "fbcon=rotate:3"} } # As a proof of concept, mainly. (Not sure it has accessibility merits.) submenu "" {return} submenu "Use black on white" --class accessibility-blakconwhite { ${grubMenuCfg} ${buildMenuAdditionalParamsGrub2 config "vt.default_red=0xFF,0xBC,0x4F,0xB4,0x56,0xBC,0x4F,0x00,0xA1,0xCF,0x84,0xCA,0x8D,0xB4,0x84,0x68 vt.default_grn=0xFF,0x55,0xBA,0xBA,0x4D,0x4D,0xB3,0x00,0xA0,0x8F,0xB3,0xCA,0x88,0x93,0xA4,0x68 vt.default_blu=0xFF,0x58,0x5F,0x58,0xC5,0xBD,0xC5,0x00,0xA8,0xBB,0xAB,0x97,0xBD,0xC7,0xC5,0x68"} } # Serial access is a must! submenu "" {return} submenu "Serial console=ttyS0,115200n8" --class serial { ${grubMenuCfg} ${buildMenuAdditionalParamsGrub2 config "console=ttyS0,115200n8"} } } menuentry 'rEFInd' --class refind { # UUID is hard-coded in the derivation. search --set=root --no-floppy --fs-uuid 1234-5678 chainloader ($root)/EFI/boot/refind_x64.efi } menuentry 'Firmware Setup' --class settings { fwsetup clear echo "" echo "If you see this message, your EFI system doesn't support this feature." echo "" } menuentry 'Shutdown' --class shutdown { halt } </ins> EOF <del> # A variant to boot with verbose logging to the console cat << EOF > $out/loader/entries/nixos-iso-debug.conf title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug) linux /boot/${config.system.boot.loader.kernelFile} initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7 EOF cat << EOF > $out/loader/loader.conf default nixos-iso timeout ${builtins.toString config.boot.loader.timeout} EOF </del> <ins> ${refind} </ins> ''; efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools pkgs.libfaketime ]; }

Discussion:
It points at this: ! I'm not sure anyone's made updated splash images with the new logo, but it'd be good to standardize.
Basically an instance of
Oh, true. Unsure whether to leave this open as a concrete thing that can be fixed, since isn't very specific about what's left to be fixed. Or just to close it and add more detail there?
Best to fix it immediately ;-)
That is actually the ISOLINUX background only. There's a separate on for GRUB: