diff --git a/lib/config/custom-build-vm.nix b/lib/config/custom-build-vm.nix index a52f631..5f56e91 100644 --- a/lib/config/custom-build-vm.nix +++ b/lib/config/custom-build-vm.nix @@ -1,66 +1,53 @@ -{ config, lib, options, pkgs, ... }: { - options = {}; - - config = { - # Replace native `qemu` with `remote-viewer` - system.build = - { - vm = - let - packageName = "custom-nixos-vm"; - - mergedSystem = - with options.system; - lib.mergeDefinitions - build.loc - build.type - (lib.lists.forEach - ( - builtins.filter - (item: - !(lib.path.hasPrefix ./. (/. + item.file))) - build.definitionsWithLocations) - (item: { inherit (item) file value; })); - in - lib.mkForce ( - if (mergedSystem.mergedValue.vm.name == packageName) - then - mergedSystem.mergedValue.vm - else - let - wrapped = pkgs.writeShellApplication { - name = "run-${config.system.name}-vm"; - text = '' - ${mergedSystem.mergedValue.vm}/bin/run-${config.system.name}-vm - ''; - }; - in - # Rename package to `nixos-vm` - pkgs.symlinkJoin { - name = packageName; - paths = [ wrapped ]; - }); +{ config, lib, options, pkgs, ... }: + let + vmOptions = { }; + in { + options = { + virtualisation = { + vmVariant = vmOptions; + vmVariantWithBootLoader = vmOptions; }; + }; - virtualisation = - let vmConfig = { - boot.loader.efi.efiSysMountPoint = lib.mkForce "/boot"; + config = { + # Replace native `qemu` with `remote-viewer` + system.build = + { + vm = + let + packageName = "custom-nixos-vm"; - virtualisation = { - qemu.options = [ - "-display sdl" - ]; - - sharedDirectories = { - hostKeys = { - source = "/etc/ssh"; - target = "/etc/ssh"; - }; - }; + mergedSystem = + with options.system; + lib.mergeDefinitions + build.loc + build.type + (lib.lists.forEach + ( + builtins.filter + (item: + !(lib.path.hasPrefix ./. (/. + item.file))) + build.definitionsWithLocations) + (item: { inherit (item) file value; })); + in + lib.mkForce ( + if (mergedSystem.mergedValue.vm.name == packageName) + then + mergedSystem.mergedValue.vm + else + let + wrapped = pkgs.writeShellApplication { + name = "run-${config.system.name}-vm"; + text = '' + ${mergedSystem.mergedValue.vm}/bin/run-${config.system.name}-vm + ''; + }; + in + # Rename package to `nixos-vm` + pkgs.symlinkJoin { + name = packageName; + paths = [ wrapped ]; + }); }; - }; - in { - vmVariantWithBootLoader = vmConfig; - }; - }; -} + }; + }