Sure. Thanks for taking the time to look
Firstly flake.nix
{
inputs = {
nixpkgs.url = ânixpkgs/nixos-22.11â;
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager }@inputs: {
pkgs = import nixpkgs { config = { allowUnfree = true; }; };
# replace nixosConfigurations.Damage with nixosConfigurations.hostname
nixosConfigurations.Damage = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
];
};
};
}
configuration.nix
{ inputs, lib, config, pkgs, ⌠}:
{
imports =
[ # Include the results of the hardware scan and other config files.
./apps.nix
./boot.nix
./desktop-environment.nix
./filesystems.nix
./hardware-configuration.nix
./machine-specific.nix
./printers.nix
./themes.nix
./users.nix
];
environment.defaultPackages = [ pkgs.nano ]; #Clean slate on installed packages
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [ ânix-commandâ âflakesâ ];
};
gc = {
automatic = true;
dates = âweeklyâ;
options = ââdelete-older-than 45dâ;
};
};
system.autoUpgrade = {
enable = true;
channel = nixos-22.11 release nixos-22.11.2680.a3d745e701c
};
nixpkgs.config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
};
virtualisation = {
waydroid.enable = true;
lxd.enable = true;
};
Set your time zone.
time.timeZone = âAmerica/New_Yorkâ;
the version of this flake used to build the system
nix.registry.activeconfig.flake = self;
environment.etc.ânix/path/activeconfigâ.source = self;
Copy the NixOS configuration file and link it from the resulting system
(/run/current-system/configuration.nix). This is useful in case you
accidentally delete configuration.nix.
system.copySystemConfiguration = true;
system.stateVersion = â22.11â; # Did you read the comment?
}
And users.nix - where user-specific HM config lies
{ config, pkgs, ⌠}:
{
users.users.john = {
isNormalUser = true;
description = âDr Johnâ;
home = â/home/johnâ;
extraGroups = [ âwheelâ ânetworkmanagerâ âvideoâ ]; # Enable âsudoâ and Networking.
};
home-manager.users.john = { pkgs, ⌠}: {
programs = {
fish.enable = true;
};
home = {
stateVersion = "22.11";
homeDirectory = "/home/john";
packages = with pkgs; [
ace-of-penguins ' And lots of other apps
];
};
};
}
All other config files donât address HM aspects (I believe)