diff --git a/modules/programs/default.nix b/modules/programs/default.nix index c14849e..294f2f1 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -36,7 +36,7 @@ ./starship.nix ./stylix.nix ./teams.nix - ./virtualbox.nix + ./virtmanager.nix ./xkb.nix ./xone.nix ./yazi diff --git a/modules/programs/virtmanager.nix b/modules/programs/virtmanager.nix new file mode 100644 index 0000000..80d9233 --- /dev/null +++ b/modules/programs/virtmanager.nix @@ -0,0 +1,67 @@ +{ + lib, + config, + options, + pkgs, + ... +}: +let + module = + if config.conf.cpu == "intel" then + "kvm-intel" + else if config.conf.cpu == "amd" then + "kvm-amd" + else + ""; +in +{ + + options.mods = { + virtmanager.enable = lib.mkOption { + default = false; + type = lib.types.bool; + example = true; + description = '' + Enables virt-manager kvm. + ''; + }; + }; + + config = + lib.optionalAttrs (options ? virtualisation.libvirtd) { + boot.kernelModules = [ + module + ]; + programs.virt-manager.enable = true; + environment.systemPackages = with pkgs; [ + spice + spice-gtk + spice-protocol + virt-viewer + ]; + virtualisation = { + libvirtd = { + enable = true; + qemu = { + package = pkgs.qemu_kvm; + swtpm.enable = true; + ovmf.enable = true; + ovmf.packages = [ pkgs.OVMFFull.fd ]; + }; + }; + spiceUSBRedirection.enable = true; + }; + services.spice-vdagentd.enable = true; + + users.users.${config.conf.username}.extraGroups = [ "libvirtd" ]; + + } + // lib.optionalAttrs (options ? dconf.settings) { + dconf.settings = { + "org/virt-manager/virt-manager/connections" = { + autoconnect = [ "qemu:///system" ]; + uris = [ "qemu:///system" ]; + }; + }; + }; +} diff --git a/modules/programs/virtualbox.nix b/modules/programs/virtualbox.nix deleted file mode 100644 index 1639305..0000000 --- a/modules/programs/virtualbox.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - config, - options, - ... -}: -{ - - options.mods = { - virtualbox.enable = lib.mkOption { - default = false; - type = lib.types.bool; - example = true; - description = '' - Enables virtualbox. - ''; - }; - }; - - config = lib.optionalAttrs (options ? virtualisation.virtualbox.host) { - virtualisation.virtualbox.host.enable = lib.mkIf config.mods.virtualbox.enable true; - }; -}