-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathflake-module.nix
138 lines (127 loc) Β· 4.03 KB
/
flake-module.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
inputs,
self,
...
}: {
flake = let
# Default modules to use in all systems
defaultModules = [
./modules
inputs.disko.nixosModules.disko
inputs.lanzaboote.nixosModules.lanzaboote
inputs.lix-module.nixosModules.default
inputs.sops-nix.nixosModules.sops
inputs.spicetify-nix.nixosModules.default
inputs.ucodenix.nixosModules.ucodenix
];
# Our images should be cleaner, so we use a different set of modules
imageModules = [
../overlays
./modules/desktops.nix
./modules/locales.nix
./modules/misc.nix
inputs.lix-module.nixosModules.default
inputs.nixos-generators.nixosModules.all-formats
inputs.spicetify-nix.nixosModules.default
"${toString inputs.nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-base.nix"
];
specialArgs = {
inherit inputs;
keys.nico = inputs.keys_nico;
self = {
inherit (self) inputs;
inherit (self) nixosModules;
packages = self.packages.x86_64-linux;
};
};
in {
# All the system configurations
nixosConfigurations = {
cup-dragon = inputs.garuda-nix.lib.garudaSystem {
system = "x86_64-linux";
modules =
defaultModules
++ [./cup-dragon/cup-dragon.nix];
inherit specialArgs;
};
dev-container = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
"${inputs.nixpkgs}/nixos/modules/virtualisation/lxc-container.nix"
./modules/dev-container/dev-container.nix
];
};
# My main device (Lenovo Slim 7)
dragons-ryzen = inputs.garuda-nix.lib.garudaSystem {
system = "x86_64-linux";
modules =
defaultModules
++ [
./dragons-ryzen/dragons-ryzen.nix
inputs.impermanence.nixosModules.impermanence
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate
inputs.nixos-hardware.nixosModules.common-gpu-amd
];
inherit specialArgs;
};
# Dr460nixed base image for nixos-generators
dr460nixed-base = inputs.garuda-nix.lib.garudaSystem {
system = "x86_64-linux";
modules =
imageModules ++ [./images/base.nix];
inherit specialArgs;
};
# Dr460nized desktop image for nixos-generators
dr460nixed-desktop = inputs.garuda-nix.lib.garudaSystem {
system = "x86_64-linux";
modules =
imageModules ++ [./images/iso.nix];
inherit specialArgs;
};
# For WSL, mostly used at work only
nixos-wsl = inputs.garuda-nix.lib.garudaSystem {
system = "x86_64-linux";
modules =
defaultModules
++ [
./nixos-wsl/nixos-wsl.nix
inputs.nixos-wsl.nixosModules.wsl
];
inherit specialArgs;
};
# Homeserver on Proxmox
pve-dragon-1 = inputs.garuda-nix.lib.garudaSystem {
system = "x86_64-linux";
modules =
defaultModules
++ [./pve-dragon-1/pve-dragon-1.nix];
inherit specialArgs;
};
};
# Expose dr460nixed and other modules for use in other flakes
nixosModules = {
default = self.nixosModules.dr460nixed;
dr460nixed = import ./modules;
};
# The default template for this flake
templates = {
default = self.templates.dr460nixed;
dr460nixed = {
description = "A basic dr460nixed flake to build a custom flake from βοΈπ";
path = ../template;
};
};
# Home configuration for my Garuda Linux
homeConfigurations."nico" = inputs.home-manager.lib.homeManagerConfiguration {
extraSpecialArgs = {inherit inputs;};
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
modules = [
../home-manager/standalone.nix
../home-manager/nico/nico.nix
inputs.chaotic-nyx.homeManagerModules.default
inputs.spicetify-nix.homeManagerModules.default
];
};
};
}