diff --git a/nixos/configurations/Tytonidae/default.nix b/nixos/configurations/Tytonidae/default.nix index 83df08d..208e7b9 100644 --- a/nixos/configurations/Tytonidae/default.nix +++ b/nixos/configurations/Tytonidae/default.nix @@ -33,6 +33,10 @@ enable = true; unixName = "david"; }; + virtualbox = { + enable = true; + unixName = "david"; + }; }; programs = { bash.enable = true; diff --git a/nixos/modules/virtualisation/virtualbox.nix b/nixos/modules/virtualisation/virtualbox.nix new file mode 100644 index 0000000..25b6b54 --- /dev/null +++ b/nixos/modules/virtualisation/virtualbox.nix @@ -0,0 +1,36 @@ +{ + config, + lib, + ... +}: let + cfg = config.youthlic.virtualisation.virtualbox; +in { + options = { + youthlic.virtualisation.virtualbox = { + enable = lib.mkEnableOption "virtualbox"; + unixName = lib.mkOption { + type = lib.types.str; + }; + }; + }; + config = lib.mkIf cfg.enable { + users.groups."vboxusers".members = [cfg.unixName]; + virtualisation.virtualbox = { + host = { + enableKvm = true; + enableExtensionPack = true; + enable = true; + addNetworkInterface = false; + enableHardening = true; + }; + guest = { + vboxsf = true; + use3rdPartyModules = true; + seamless = true; + enable = true; + dragAndDrop = true; + clipboard = true; + }; + }; + }; +}