{ pkgs, config, lib, flakeRoot, ... }: let # Paths for theming grubThemeDir = "/boot/grub/themes/catppuccin-mocha"; grubThemeFile = "${grubThemeDir}/theme.txt"; plymouthThemeDir = "/usr/share/plymouth/themes/catppuccin"; in { boot = { # Kernel and initrd settings initrd = { verbose = false; kernelModules = []; }; kernelPackages = pkgs.linuxPackages_latest; kernelParams = [ "quiet" "udev.log_level=3" "systemd.show_status=auto" ]; consoleLogLevel = 3; supportedFilesystems = [ "ntfs" ]; # GRUB loader loader = { grub = { enable = true; devices = [ "/dev/nvme0n1" ]; # <- replace with your real boot disk useOSProber = true; theme = grubThemeFile; # point GRUB to our theme }; efi = { enable = true; canTouchEfiVariables = true; }; timeout = 5; }; # Plymouth splashscreen plymouth = { enable = true; theme = "rings"; themePackages = with pkgs; [ (adi1090x-plymouth-themes.override { selected_themes = [ "rings" ]; }) ]; }; }; # Activation script: write Catppuccin GRUB theme system.activationScripts.grubTheme = { text = '' mkdir -p ${grubThemeDir} cat > ${grubThemeFile} <