diff options
| author | Miran Bastaja <miran.bastaja04@gmail.com> | 2023-12-02 13:03:25 +0100 |
|---|---|---|
| committer | Miran Bastaja <miran.bastaja04@gmail.com> | 2023-12-02 13:16:32 +0100 |
| commit | 101b008a72f9be88007abf44b75fcd05cf1b78b1 (patch) | |
| tree | 37c71d700e119ae124d1fdd01d7dd0d3610f76d4 /share/system | |
| parent | 5de46164adcc31b6f710a9a3895bee3820415624 (diff) | |
Refactor virt.nix and turn it into a shared module
Diffstat (limited to 'share/system')
| -rw-r--r-- | share/system/virt.nix | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/share/system/virt.nix b/share/system/virt.nix new file mode 100644 index 0000000..0207064 --- /dev/null +++ b/share/system/virt.nix @@ -0,0 +1,33 @@ +{ pkgs, virt-users ? [ ], ... }: +let + # https://stackoverflow.com/questions/75855410/nix-map-list-of-keys-to-attribute-set-members + attrSetRepeatValue = value: list: + let + acc = { }; # accumulator + in + builtins.foldl' (acc: key: acc // { "${key}" = value; }) acc list; +in +{ + users.users = attrSetRepeatValue + { extraGroups = [ "libvirtd" ]; } + virt-users; + + home-manager.users = attrSetRepeatValue + { + home.packages = [ pkgs.quickemu ]; + dconf.settings."org/virt-manager/virt-manager/connections" = { + autoconnect = [ "qemu:///system" ]; + uris = [ "qemu:///system" ]; + }; + } + virt-users; + + programs.virt-manager.enable = true; + virtualisation.libvirtd = { + enable = true; + qemu = { + package = pkgs.qemu_kvm; + swtpm.enable = true; + }; + }; +} |
