diff options
| -rw-r--r-- | hosts/wonderland/default.nix | 3 | ||||
| -rw-r--r-- | hosts/wonderland/virt.nix | 18 | ||||
| -rw-r--r-- | share/system/virt.nix | 33 |
3 files changed, 35 insertions, 19 deletions
diff --git a/hosts/wonderland/default.nix b/hosts/wonderland/default.nix index d052621..03e91a3 100644 --- a/hosts/wonderland/default.nix +++ b/hosts/wonderland/default.nix @@ -4,9 +4,10 @@ ./hardware.nix ./home.nix ./sops.nix - ./virt.nix (flakeRoot + /share/system/steam.nix) (flakeRoot + /share/system/hyprland.nix) + (import (flakeRoot + /share/system/virt.nix) + { inherit pkgs; virt-users = [ "alice" ]; }) #(flakeRoot + /share/system/spotifyd.nix) { _module.args = { inherit inputs; }; } ]; diff --git a/hosts/wonderland/virt.nix b/hosts/wonderland/virt.nix deleted file mode 100644 index 48a416d..0000000 --- a/hosts/wonderland/virt.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: { - users.users.alice.extraGroups = [ "libvirtd" ]; - home-manager.users.alice.dconf.settings = { - "org/virt-manager/virt-manager/connections" = { - autoconnect = [ "qemu:///system" ]; - uris = [ "qemu:///system" ]; - }; - }; - - programs.virt-manager.enable = true; - virtualisation.libvirtd = { - enable = true; - qemu = { - package = pkgs.qemu_kvm; - swtpm.enable = true; - }; - }; -} 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; + }; + }; +} |
