/
flake.nix
47 lines (45 loc) · 1.35 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
description = "Root flake for NixOS, Nix shells and Home Manager";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
flake-utils.url = "github:numtide/flake-utils";
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
home-manager,
flake-utils,
nixpkgs,
self,
unstable,
}: let
user = builtins.getEnv "USER";
in
flake-utils.lib.eachDefaultSystem (
system: let
pkgs = nixpkgs.legacyPackages.${system};
hostname = (import /etc/nixos/configuration.nix {inherit pkgs;}).networking.hostName;
devShells = import ./nix/shells/main.nix {inherit pkgs unstable;};
in {
inherit devShells;
packages = {
nixosConfigurations = {
"${hostname}" = nixpkgs.lib.nixosSystem {
modules = [
./nix/nixos/configuration.nix
];
specialArgs = {inherit unstable home-manager;};
};
};
homeConfigurations."${user}" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [./nix/home-manager/home.nix];
extraSpecialArgs = {inherit unstable;};
};
};
}
);
}