{ config, lib, ... }: let cfg = config.nmasur.presets.services.grub; in { options.nmasur.presets.services.grub.enable = lib.mkEnableOption "Grub bootloader"; config = lib.mkIf cfg.enable { boot.loader = { grub = { enable = true; # Not sure what this does, but it involves the UEFI/BIOS efiSupport = true; # Check for other OSes and make them available useOSProber = true; # Attempt to display GRUB on widescreen monitor gfxmodeEfi = "1920x1080"; # Limit the total number of configurations to rollback configurationLimit = 25; # Install GRUB onto the boot disk # device = config.fileSystems."/boot".device; # Don't install GRUB, required for UEFI? device = "nodev"; # Display menu indefinitely if holding shift key extraConfig = '' if keystatus --shift ; then set timeout=-1 else set timeout=3 fi ''; }; # Always display menu indefinitely; default is 5 seconds # timeout = null; # Allows GRUB to interact with the UEFI/BIOS I guess efi.canTouchEfiVariables = true; }; }; }