summaryrefslogtreecommitdiffstats
path: root/modules/desktop/apps/virt.nix
blob: 5851a0b27e4786037f2a5076cd60e7a225f003b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
    config,
    options,
    lib,
    pkgs,
    ...
}: let
    virtConfig = config.modules.desktop.apps.virt-manager;
in
{
    options.modules.desktop.apps.virt-manager = {
        enable = lib.mkOption {
            type = lib.types.bool;
            default = false;
        };
    };

    config = lib.mkIf (virtConfig.enable) {
        virtualisation.libvirtd = {
            enable = true;
            qemu = {
                package = pkgs.qemu_kvm;
                runAsRoot = true;
                swtpm.enable = true;
                ovmf = {
                    enable = true;
                    packages = [(pkgs.OVMF.override {
                        secureBoot = true;
                        tpmSupport = true;
                    }).fd];
                };
            };
        };
        programs.virt-manager.enable = true;

        home.manager.dconf.settings = {
            "org/virt-manager/virt-manager/connections" = {
                autoconnect = ["qemu:///system"];
                uris = ["qemu:///system"];
            };
        };

        user.extraGroups = ["libvirtd"];
    };
}