# A very basic NixOS VM configuration intended for testing out the given # workflow module. It's a good thing the baseline for the configuration is not # tedious to set up for simpler configs like this. Just take note this is # executed on a separate directory as its own so relative paths are moot. { workflow, extraModules ? [ ], extraHomeModules ? [ ] }: let pkgs = import { }; config' = import { }; lib = pkgs.lib; in import { inherit lib; modules = extraModules ++ [ ({ config, lib, pkgs, ... }: { imports = [ (lib.private.mapHomeManagerUser "alice" { password = ""; extraGroups = [ "wheel" ]; description = "There is no password"; isNormalUser = true; createHome = true; home = "/home/alice"; }) ]; config = { # Enable the display manager of choice. services.xserver.displayManager.gdm.enable = true; # Configure home-manager-related stuff. home-manager.useUserPackages = lib.mkDefault true; home-manager.useGlobalPkgs = lib.mkDefault true; home-manager.sharedModules = extraHomeModules ++ [ ({ config, lib, ... }: { xdg.userDirs.createDirectories = lib.mkForce true; }) ]; # The main function of the configuration. workflows.workflows.${workflow}.enable = true; nixpkgs.overlays = [ config'.overlays.default ]; system.stateVersion = "23.11"; }; }) ]; }