{ lib, pkgs, inputs, namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal". system, # The system architecture for this host (eg. `x86_64-linux`). target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). format, # A normalized name for the system target (eg. `iso`). virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. systems, # An attribute map of your defined hosts. config, ... }: with lib; with lib.${namespace}; let cfg = config.${namespace}.common.grub; in { options.${namespace}.common.grub = { enable = mkEnableOption "grub"; }; config = mkIf cfg.enable { boot.loader.systemd-boot.enable = false; boot.loader.grub = { enable = true; devices = [ "nodev" ]; efiInstallAsRemovable = true; efiSupport = true; version = 2; extraEntries = '' menuentry "Reboot" { reboot } menuentry "Poweroff" { halt } ''; }; }; }