-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
86 lines (72 loc) · 2.23 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
{
description = ''
A Nix flake for reproducing the Linux system configurations used on
Jacob Birkett's personal computers.
'';
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nur.url = "github:nix-community/NUR";
hyprland.url = "github:hyprwm/hyprland";
hyprland.inputs.nixpkgs.follows = "nixpkgs";
nil.url = "github:oxalica/nil";
nil.inputs.nixpkgs.follows = "nixpkgs";
alejandra.url = "github:kamadorueda/alejandra/3.0.0";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
webcord.url = "github:fufexan/webcord-flake";
webcord.inputs.nixpkgs.follows = "nixpkgs";
spicetify.url = "github:the-argus/spicetify-nix";
spicetify.inputs.nixpkgs.follows = "nixpkgs";
homeage.url = "github:jordanisaacs/homeage";
homeage.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs @ {
self,
nixpkgs,
home-manager,
nur,
...
}: let
system = "x86_64-linux";
inherit (nixpkgs) lib;
flib = import ./lib.nix lib;
inputPackageOverlays = flib.mkPackagesOverlay system (
removeAttrs inputs [
"nixpkgs"
"nur"
]
);
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
inputPackageOverlays
nur.overlay
self.overlays.${system}.allowUnfree
self.overlays.${system}.nixpkgsFixes
];
};
# manually import the packages subflake to avoid locking issues
# this flake must have the same inputs that dotpkgs expects
dotpkgs = (import ./dotpkgs/flake.nix).outputs inputs;
in {
# merge the packages flake into this one
inherit (dotpkgs) packages overlays nixosModules homeManagerModules;
nixosConfigurations =
flib.genConfigurations ./systems {
inherit self nixpkgs pkgs;
modules = flib.joinNixosModules inputs;
} [
"jacob-thinkpad"
];
homeConfigurations =
flib.genConfigurations ./users {
inherit self home-manager pkgs;
ulib = import ./users/lib.nix lib;
hmModules = flib.joinHomeModules inputs;
} [
"jacob"
];
};
}