{ lib, config, ... }: { options = { grub.enable = lib.mkEnableOption "enables grub bootloader"; grub.mode = lib.mkOption { type = lib.types.enum [ "efi" "bios" ]; default = "efi"; description = "grub mode efi or bios"; }; grub.biosDevice = lib.mkOption { type = lib.types.str; description = "device to install grub on"; }; }; config = lib.mkIf config.grub.enable { boot.loader = { grub = { enable = true; efiSupport = config.grub.mode == "efi"; efiInstallAsRemovable = config.grub.mode == "efi"; device = if config.grub.mode == "bios" then config.grub.biosDevice else "nodev"; }; efi.efiSysMountPoint = "/boot/efi"; }; }; }