{ pkgs, config, lib, flakeRoot, ... }: let grubThemeSrc = "${flakeRoot}/assets/system/theming/boot"; in { ############################ # Bootloader (GRUB) ############################ boot.loader = { timeout = 5; grub = { enable = true; efiSupport = true; devices = [ "nodev" ]; useOSProber = true; # Declarative theme theme = "/boot/grub/themes/catppuccin-mocha/theme.txt"; }; }; ############################ # Kernel / boot settings ############################ boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelParams = [ "quiet" "splash" # REQUIRED for plymouth "udev.log_level=3" "rd.systemd.show_status=false" ]; boot.consoleLogLevel = 0; boot.supportedFilesystems = [ "ntfs" ]; ############################ # Plymouth splashscreen ############################ boot.plymouth = { enable = true; theme = "rings"; themePackages = [ (pkgs.adi1090x-plymouth-themes.override { selected_themes = [ "rings" ]; }) ]; }; # Ensure plymouth starts early in initrd boot.initrd.systemd.enable = true; ############################ # Copy GRUB theme files declaratively ############################ environment.etc = { "grub/themes/catppuccin-mocha/theme.txt".source = "${grubThemeSrc}/theme.txt"; "grub/themes/catppuccin-mocha/background.png".source = "${grubThemeSrc}/background.png"; }; ############################ # Avoid warnings ############################ system.stateVersion = "26.05"; }