{
  lib,
  pkgs,
  username,
  ...
}: {
  imports =
    [
      ./hardware.nix
    ]
    ++ lib.filesystem.listFilesRecursive ../../modules;

  # Define users
  # If use nixos-anywhere to install, hashedPassword should be declared before installation
  users = {
    # users.root = {
    #   hashedPassword = "xxxxxx"; could be generated by mkpasswd
    # };
    users."${username}" = {
      extraGroups = [
        "libvirtd"
        "networkmanager"
        "wheel"
      ];
      # hashedPassword = "";
      homeMode = "755";
      ignoreShellProgramCheck = true;
      isNormalUser = true;
      shell = pkgs.nushell;
    };
  };
}
