2025-01-18 15:59:06 +08:00
|
|
|
{
|
|
|
|
|
config,
|
|
|
|
|
lib,
|
|
|
|
|
pkgs,
|
|
|
|
|
...
|
2025-04-28 21:20:32 +08:00
|
|
|
}: let
|
2025-01-18 15:59:06 +08:00
|
|
|
cfg = config.youthlic.programs.kvm;
|
2025-04-28 21:20:32 +08:00
|
|
|
in {
|
2025-01-18 15:59:06 +08:00
|
|
|
options = {
|
|
|
|
|
youthlic.programs.kvm = {
|
|
|
|
|
enable = lib.mkEnableOption "kvm";
|
|
|
|
|
unixName = lib.mkOption {
|
|
|
|
|
type = lib.types.str;
|
|
|
|
|
example = "david";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
|
quickemu
|
|
|
|
|
];
|
|
|
|
|
programs.virt-manager = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
2025-04-28 21:20:32 +08:00
|
|
|
users.groups.libvirtd.members = [cfg.unixName];
|
2025-01-18 15:59:06 +08:00
|
|
|
virtualisation = {
|
|
|
|
|
libvirtd = {
|
|
|
|
|
enable = true;
|
2025-06-24 21:42:12 +08:00
|
|
|
qemu.vhostUserPackages = with pkgs; [virtiofsd];
|
2025-01-18 15:59:06 +08:00
|
|
|
};
|
|
|
|
|
spiceUSBRedirection = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|