This commit is contained in:
Kopatz
2024-11-19 16:57:08 +00:00
parent 62191ae411
commit c10f105ddc
2 changed files with 17 additions and 24 deletions

View File

@@ -1,52 +1,45 @@
{lib, config, pkgs, ... }: { lib, config, pkgs, ... }:
with lib; with lib;
let let cfg = config.custom.virt-manager;
cfg = config.custom.virt-manager; in {
in
{
options.custom.virt-manager = { options.custom.virt-manager = {
enable = mkEnableOption "Enables virt-manager"; enable = mkEnableOption "Enables virt-manager";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.dconf.enable = true; # virt-manager requires dconf to remember settings programs.dconf.enable =
environment.systemPackages = with pkgs; [ virt-manager virtiofsd ]; true; # virt-manager requires dconf to remember settings
environment.systemPackages = with pkgs; [ virtiofsd ];
environment.sessionVariables.GSETTINGS_BACKEND = "keyfile"; environment.sessionVariables.GSETTINGS_BACKEND = "keyfile";
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
options kvm ignore_msrs=1 options kvm ignore_msrs=1
''; '';
programs.virt-manager.enable = true;
virtualisation = { virtualisation = {
libvirtd = { libvirtd = {
enable = true; enable = true;
qemu = { qemu = {
#package = pkgs.qemu_kvm; #package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true; swtpm.enable = true;
ovmf.enable = true; ovmf.enable = true;
ovmf.packages = [ pkgs.OVMFFull.fd ]; ovmf.packages = [ pkgs.OVMFFull.fd ];
}; };
hooks.qemu = { hooks.qemu = {
# doesnt work, screen just freezes. no error in libvirt logs though, so idk how to fix it # doesnt work, screen just freezes. no error in libvirt logs though, so idk how to fix it
"passthrough" = lib.getExe ( "passthrough" = lib.getExe (pkgs.writeShellApplication {
pkgs.writeShellApplication {
name = "qemu-hook"; name = "qemu-hook";
excludeShellChecks = [ "SC2046" "SC2086" ]; excludeShellChecks = [ "SC2046" "SC2086" ];
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ libvirt systemd kmod ];
libvirt
systemd
kmod
];
text = builtins.readFile ./hook.sh; text = builtins.readFile ./hook.sh;
} });
);
}; };
}; };
spiceUSBRedirection.enable = true; spiceUSBRedirection.enable = true;
}; };
services.spice-vdagentd.enable = true; services.spice-vdagentd.enable = true;
users.users.${config.mainUser.name}.extraGroups = [ "libvirtd" "kvm" "input" ]; users.users.${config.mainUser.name}.extraGroups =
[ "libvirtd" "kvm" "input" ];
}; };
} }

View File

@@ -15,6 +15,7 @@
tmpfs.enable = true; tmpfs.enable = true;
nftables.enable = true; nftables.enable = true;
cli-tools.enable = true; cli-tools.enable = true;
virt-manager.enable = true;
nix = { nix = {
index.enable = true; index.enable = true;
ld.enable = true; ld.enable = true;
@@ -39,7 +40,6 @@
# enable = true; # enable = true;
# server = [ "192.168.0.10" ]; # server = [ "192.168.0.10" ];
#}; #};
misc = { docker.enable = true; };
services = { syncthing = { enable = true; }; }; services = { syncthing = { enable = true; }; };
hardware = { hardware = {
firmware.enable = true; firmware.enable = true;