my nix configs for my servers and desktop
1{ config, lib, system, pkgs, modulesPath, inputs, ... }: 2 3{ 4 programs.virt-manager.enable = true; 5 virtualisation.spiceUSBRedirection.enable = true; 6 virtualisation.libvirtd = { 7 enable = true; 8 qemu = { 9 package = pkgs.qemu_kvm; 10 runAsRoot = true; 11 swtpm.enable = true; 12 ovmf = { 13 enable = true; 14 packages = [(pkgs.OVMF.override { 15 secureBoot = true; 16 tpmSupport = true; 17 }).fd]; 18 }; 19 }; 20 hooks.qemu = { 21 win11 = ./scripts/vm-win11-hook.sh; 22 }; 23 }; 24 25 systemd.services.libvirtd = { 26 path = let 27 env = pkgs.buildEnv { 28 name = "qemu-hook-env"; 29 paths = with pkgs; [ 30 bash 31 libvirt 32 kmod 33 systemd 34 ripgrep 35 sd 36 ]; 37 }; 38 in 39 [ env ]; 40 41 /*preStart = 42 '' 43 mkdir -p /var/lib/libvirt/hooks 44 mkdir -p /var/lib/libvirt/hooks/qemu.d/win10/prepare/begin 45 mkdir -p /var/lib/libvirt/hooks/qemu.d/win10/release/end 46 mkdir -p /var/lib/libvirt/vgabios 47 48 ln -sf /home/regent/symlinks/qemu /var/lib/libvirt/hooks/qemu 49 ln -sf /home/regent/symlinks/kvm.conf /var/lib/libvirt/hooks/kvm.conf 50 ln -sf /home/regent/symlinks/start.sh /var/lib/libvirt/hooks/qemu.d/win11/prepare/begin/start.sh 51 ln -sf /home/regent/symlinks/stop.sh /var/lib/libvirt/hooks/qemu.d/win11/release/end/stop.sh 52 53 chmod +x /var/lib/libvirt/hooks/qemu 54 chmod +x /var/lib/libvirt/hooks/kvm.conf 55 chmod +x /var/lib/libvirt/hooks/qemu.d/win11/prepare/begin/start.sh 56 chmod +x /var/lib/libvirt/hooks/qemu.d/win11/release/end/stop.sh 57 '';*/ 58 }; 59 60 users.extraUsers.regent.extraGroups = [ "libvirtd" ]; 61}