2023-09-27 12:31:19 +00:00
|
|
|
{ lib, config, options, ... }:
|
|
|
|
{
|
|
|
|
options = {
|
|
|
|
clan.virtualisation = {
|
|
|
|
cores = lib.mkOption {
|
|
|
|
type = lib.types.ints.positive;
|
|
|
|
default = 1;
|
|
|
|
description = lib.mdDoc ''
|
|
|
|
Specify the number of cores the guest is permitted to use.
|
|
|
|
The number can be higher than the available cores on the
|
|
|
|
host system.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
memorySize = lib.mkOption {
|
|
|
|
type = lib.types.ints.positive;
|
|
|
|
default = 1024;
|
|
|
|
description = lib.mdDoc ''
|
|
|
|
The memory size in megabytes of the virtual machine.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
graphics = lib.mkOption {
|
|
|
|
type = lib.types.bool;
|
|
|
|
default = true;
|
|
|
|
description = lib.mdDoc ''
|
|
|
|
Whether to run QEMU with a graphics window, or in nographic mode.
|
|
|
|
Serial console will be enabled on both settings, but this will
|
|
|
|
change the preferred console.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = {
|
|
|
|
system.clan.vm.config = {
|
|
|
|
inherit (config.clan.virtualisation) cores graphics;
|
|
|
|
memory_size = config.clan.virtualisation.memorySize;
|
|
|
|
};
|
|
|
|
|
|
|
|
virtualisation = lib.optionalAttrs (options.virtualisation ? cores) {
|
|
|
|
memorySize = lib.mkDefault config.clan.virtualisation.memorySize;
|
|
|
|
graphics = lib.mkDefault config.clan.virtualisation.graphics;
|
|
|
|
cores = lib.mkDefault config.clan.virtualisation.cores;
|
|
|
|
};
|
|
|
|
};
|
2023-09-14 14:57:19 +00:00
|
|
|
}
|