{ config, lib, pkgs, ... }: let cfg = config.homelab.virtualization; in { config = lib.mkMerge [ (lib.mkIf cfg.qemu.enable { virtualisation = { containers.enable = true; libvirtd = { enable = true; qemu = { package = pkgs.qemu_kvm; swtpm.enable = true; }; }; }; users.users.${cfg.user}.extraGroups = [ "libvirtd" "kvm" ]; }) (lib.mkIf cfg.qemu.spiceUSBRedirection { virtualisation.spiceUSBRedirection.enable = true; }) (lib.mkIf cfg.qemu.virtManager { programs.virt-manager.enable = true; }) (lib.mkIf cfg.qemu.bootModules { boot.kernelModules = cfg.qemu.bootModules; }) ]; }