45 lines
1.5 KiB
Nix
45 lines
1.5 KiB
Nix
# VM self-test overrides — used with nixos-rebuild build-vm to try the system
|
|
# in a VM without rebuilding/rebooting the host.
|
|
{ config, lib, pkgs, ... }:
|
|
{
|
|
virtualisation.vmVariant = {
|
|
config = {
|
|
|
|
|
|
hardware.nvidia-container-toolkit.enable = lib.mkForce false;
|
|
hardware.nvidia.package = lib.mkForce null;
|
|
services.xserver.videoDrivers = lib.mkForce [ "modesetting" ];
|
|
|
|
virtualisation = {
|
|
memorySize = 4096;
|
|
cores = 3;
|
|
graphics = true;
|
|
qemu.options = [
|
|
"-device virtio-vga-gl"
|
|
"-display gtk,gl=on"
|
|
];
|
|
};
|
|
|
|
users.users.olivier = {
|
|
initialPassword = lib.mkForce "";
|
|
hashedPasswordFile = lib.mkForce null; # Disable the secret file dependency
|
|
};
|
|
|
|
# Force greetd's `initial_session` directly. We can't rely on
|
|
# `services.displayManager.autoLogin` because DankGreeter's flake module
|
|
# (inputs.dms.nixosModules.greeter) aggressively overwrites
|
|
# `services.greetd.settings`, clobbering whatever the displayManager
|
|
# module injects for auto-login. mkForce on `initial_session` alone wins
|
|
# against DMS without touching `default_session` (DankGreeter), so a
|
|
# manual logout in the VM still shows DankGreeter. VM-only — host build
|
|
# is unaffected because this whole block lives under vmVariant.
|
|
services.greetd.settings.initial_session = lib.mkForce {
|
|
command = "${pkgs.niri}/bin/niri-session";
|
|
user = "olivier";
|
|
};
|
|
|
|
environment.systemPackages = [ pkgs.grc ];
|
|
};
|
|
};
|
|
}
|