aboutsummaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorMiran Bastaja <miran.bastaja04@gmail.com>2023-12-02 13:03:25 +0100
committerMiran Bastaja <miran.bastaja04@gmail.com>2023-12-02 13:16:32 +0100
commit101b008a72f9be88007abf44b75fcd05cf1b78b1 (patch)
tree37c71d700e119ae124d1fdd01d7dd0d3610f76d4 /share
parent5de46164adcc31b6f710a9a3895bee3820415624 (diff)
Refactor virt.nix and turn it into a shared module
Diffstat (limited to 'share')
-rw-r--r--share/system/virt.nix33
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;
+ };
+ };
+}