92 lines
2.5 KiB
Nix
92 lines
2.5 KiB
Nix
{ config, pkgs, lib, flakeRoot, ... }:
|
|
|
|
let
|
|
# Path to store GRUB theme
|
|
grubThemeDir = "/boot/grub/themes/catppuccin-mocha";
|
|
|
|
# Catppuccin Mocha colors
|
|
catppuccin = {
|
|
base = "#1e1e2e"; # background
|
|
mantle = "#181825";
|
|
crust = "#11111b";
|
|
text = "#cdd6f4";
|
|
rosewater = "#f5e0dc";
|
|
flamingo = "#f2cdcd";
|
|
pink = "#f5c2e7";
|
|
mauve = "#cba6f7";
|
|
red = "#f38ba8";
|
|
maroon = "#eba0ac";
|
|
peach = "#fab387";
|
|
yellow = "#f9e2af";
|
|
green = "#a6e3a1";
|
|
teal = "#94e2d5";
|
|
sky = "#89dceb";
|
|
sapphire = "#74c7ec";
|
|
blue = "#89b4fa";
|
|
lavender = "#b4befe";
|
|
};
|
|
|
|
# Helper to recursively write theme files
|
|
grubThemeFile = "${grubThemeDir}/theme.txt";
|
|
|
|
in
|
|
{
|
|
boot = {
|
|
initrd = {
|
|
verbose = false;
|
|
kernelModules = [];
|
|
};
|
|
|
|
extraModulePackages = [];
|
|
kernelPackages = pkgs.linuxPackages_latest;
|
|
kernelParams = [ "quiet" ];
|
|
consoleLogLevel = 0;
|
|
|
|
plymouth.enable = true;
|
|
plymouth.theme = "spinner"; # default theme; we can override with custom image
|
|
|
|
supportedFilesystems = [ "ntfs" ];
|
|
|
|
loader = {
|
|
systemd-boot.enable = true;
|
|
systemd-boot.configurationLimit = 10;
|
|
efi.canTouchEfiVariables = true;
|
|
timeout = 5;
|
|
};
|
|
};
|
|
|
|
# GRUB theme setup using activation script
|
|
system.activationScripts.grubTheme = {
|
|
text = ''
|
|
mkdir -p ${grubThemeDir}
|
|
|
|
# Write GRUB theme using Catppuccin colors
|
|
cat > ${grubThemeFile} <<EOF
|
|
# Catppuccin Mocha GRUB theme
|
|
desktop-color = ${catppuccin.base}
|
|
normal-color = ${catppuccin.text}
|
|
selected-item-color = ${catppuccin.rosewater}
|
|
selected-item-highlight-color = ${catppuccin.pink}
|
|
EOF
|
|
|
|
# Optional: copy a matching PNG for background if exists in flake assets
|
|
if [ -f "${flakeRoot}/assets/grub-bg.png" ]; then
|
|
cp "${flakeRoot}/assets/grub-bg.png" "${grubThemeDir}/background.png"
|
|
fi
|
|
|
|
echo "GRUB Catppuccin Mocha theme installed."
|
|
'';
|
|
};
|
|
|
|
# Optionally, configure Plymouth to use your Catppuccin splash image
|
|
system.activationScripts.plymouthTheme = {
|
|
text = ''
|
|
if [ -f "${flakeRoot}/assets/system/theming/mocha.webp" ]; then
|
|
mkdir -p /usr/share/plymouth/themes/catppuccin
|
|
cp "${flakeRoot}//assets/system/theming/mocha.webp" /usr/share/plymouth/themes/catppuccin/splash.png
|
|
update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/catppuccin/splash.png 100
|
|
fi
|
|
'';
|
|
};
|
|
}
|