nixos/flake.nix

79 lines
2.5 KiB
Nix

{
description = "NixOS system flake.";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
nur.url = "github:nix-community/NUR";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nixpkgs-stable, nur, home-manager, ... } @ inputs:
let
inherit (self) outputs;
system = "x86_64-linux";
timeZone = "America/Denver";
pkgs = nixpkgs.legacyPackages.${system};
stablePkgs = nixpkgs-stable.legacyPackages.${system};
in
{
nixosConfigurations = {
luci = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs outputs timeZone system;
};
modules = [
inputs.home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.luci = import ./luci/modules/home-manager/home.nix;
home-manager.extraSpecialArgs = {
inherit inputs outputs;
};
}
./luci/default.nix
];
};
nate = nixpkgs.lib.nixosSystem {
# Pass args to desktop configuration
specialArgs = {
inherit inputs outputs timeZone system;
};
modules = [
# Setup home manager
inputs.home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nate = import ./nate/modules/home-manager/home.nix;
home-manager.extraSpecialArgs = {
inherit inputs outputs;
};
}
./nate/default.nix
];
};
jaci = nixpkgs.lib.nixosSystem {
# Pass args to desktop configuration
specialArgs = {
inherit inputs outputs timeZone system;
};
modules = [
# Setup home manager
inputs.home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.jaci = import ./jaci/modules/home-manager/home.nix;
home-manager.extraSpecialArgs = {
inherit inputs outputs;
};
}
./jaci/default.nix
];
};
};
};
}