{ config, lib, pkgs, ... }: with lib; let cfg = config.nixfiles.modules.libvirtd; in { options.nixfiles.modules.libvirtd.enable = mkEnableOption "libvirtd"; config = mkIf cfg.enable { virtualisation.libvirtd = { enable = true; onBoot = "ignore"; onShutdown = "shutdown"; extraConfig = '' log_level = 4 log_outputs = "4:stderr" ''; qemu = { package = pkgs.qemu_kvm; runAsRoot = false; ovmf = { enable = true; packages = [pkgs.OVMFFull.fd]; }; swtpm = { enable = false; # Is this required for Windows 11? package = pkgs.swtpm-tpm2; }; }; }; environment.systemPackages = with pkgs; [virt-manager qemu-utils]; my.extraGroups = ["libvirtd"]; }; }