me like nix
1{
2 description = "My NixOS Flake Configuration";
3
4 inputs = {
5 # Nixpkgs (stable or unstable)
6 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
7
8 # Home Manager
9 home-manager = {
10 url = "github:nix-community/home-manager/master";
11 inputs.nixpkgs.follows = "nixpkgs"; # Ensures Home Manager uses the same nixpkgs
12 };
13 catppuccin.url = "github:catppuccin/nix";
14 niri.url = "github:sodiboo/niri-flake";
15 nixarr.url = "github:rasmus-kirk/nixarr";
16 zen-browser = {
17 url = "github:0xc000022070/zen-browser-flake";
18 inputs.nixpkgs.follows = "nixpkgs";
19 };
20 copyparty.url = "github:9001/copyparty";
21 nixos-hardware.url = "github:NixOS/nixos-hardware/master";
22 agenix = {
23 url = "github:ryantm/agenix";
24 inputs.nixpkgs.follows = "nixpkgs";
25 };
26 organelle-hello = {
27 url = "path:/home/sean/dev/organelle-hello";
28 inputs.nixpkgs.follows = "nixpkgs";
29 };
30 };
31
32 outputs =
33 {
34 self,
35 nixpkgs,
36 home-manager,
37 catppuccin,
38 niri,
39 nixarr,
40 copyparty,
41 nixos-hardware,
42 agenix,
43 organelle-hello,
44 ...
45 }@inputs:
46 {
47 nixosConfigurations = {
48 # Replace "nixos" with your actual desired hostname if it's different
49 # This "nixos" must match the `networking.hostName` in your configuration.nix
50 mira = nixpkgs.lib.nixosSystem {
51 system = "x86_64-linux";
52 modules = [
53 # Your main configuration file
54 ./hosts/mira/configuration.nix
55 catppuccin.nixosModules.catppuccin
56
57 copyparty.nixosModules.default
58
59 ({
60 nixpkgs.overlays = [
61 niri.overlays.niri
62 copyparty.overlays.default
63 ];
64 })
65
66 # nixarr module
67 nixarr.nixosModules.default
68
69 # Home Manager module
70 home-manager.nixosModules.home-manager
71 {
72 home-manager.extraSpecialArgs = { inherit inputs; };
73 home-manager.users.sean = import ./hosts/mira/home.nix;
74 }
75 ];
76 specialArgs = { inherit inputs; };
77 };
78 framework16 = nixpkgs.lib.nixosSystem {
79 system = "x86_64-linux";
80 modules = [
81 # Your main configuration file
82 ./hosts/framework16/configuration.nix
83 catppuccin.nixosModules.catppuccin
84 nixos-hardware.nixosModules.framework-16-7040-amd
85
86 ({
87 nixpkgs.overlays = [ niri.overlays.niri ];
88 })
89
90 # Home Manager module
91 home-manager.nixosModules.home-manager
92 {
93 home-manager.extraSpecialArgs = { inherit inputs; };
94 home-manager.users.sean = import ./hosts/framework16/home.nix;
95 }
96 ];
97 specialArgs = { inherit inputs; };
98 };
99
100 pi = nixpkgs.lib.nixosSystem {
101 system = "aarch64-linux";
102 modules = [
103 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
104 nixos-hardware.nixosModules.raspberry-pi-4
105 agenix.nixosModules.default
106 ./hosts/pi/configuration.nix
107
108 # Allow missing kernel modules (Pi kernel doesn't have all x86 modules)
109 # See: https://github.com/NixOS/nixpkgs/issues/154163
110 ({
111 nixpkgs.overlays = [
112 (final: super: {
113 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
114 })
115 ];
116 })
117 ];
118 specialArgs = { inherit inputs; };
119 };
120
121 pizero = nixpkgs.lib.nixosSystem {
122 system = "aarch64-linux";
123 modules = [
124 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
125 agenix.nixosModules.default
126 ./hosts/pizero/configuration.nix
127
128 # Allow missing kernel modules (Pi kernel doesn't have all x86 modules)
129 ({
130 nixpkgs.overlays = [
131 (final: super: {
132 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
133 })
134 ];
135 })
136 ];
137 specialArgs = { inherit inputs; };
138 };
139
140 organelle = nixpkgs.lib.nixosSystem {
141 system = "aarch64-linux";
142 modules = [
143 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
144 agenix.nixosModules.default
145 ./hosts/organelle/configuration.nix
146
147 ({
148 nixpkgs.overlays = [
149 (final: super: {
150 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
151 })
152 ];
153 })
154 ];
155 specialArgs = { inherit inputs; };
156 };
157 };
158 };
159}