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 kaleidux = {
27 url = "github:Mjoyufull/Kaleidux";
28 inputs.nixpkgs.follows = "nixpkgs";
29 };
30 fsel = {
31 url = "github:Mjoyufull/fsel";
32 inputs.nixpkgs.follows = "nixpkgs";
33 };
34 organelle-hello = {
35 url = "path:/home/sean/dev/organelle-hello";
36 inputs.nixpkgs.follows = "nixpkgs";
37 };
38 trmnl-rs = {
39 url = "github:seanaye/trmnl-rs";
40 inputs.nixpkgs.follows = "nixpkgs";
41 };
42 nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
43 };
44
45 outputs =
46 {
47 self,
48 nixpkgs,
49 home-manager,
50 catppuccin,
51 niri,
52 nixarr,
53 copyparty,
54 nixos-hardware,
55 agenix,
56 organelle-hello,
57 nixos-raspberrypi,
58 ...
59 }@inputs:
60 {
61 nixosConfigurations = {
62 # Replace "nixos" with your actual desired hostname if it's different
63 # This "nixos" must match the `networking.hostName` in your configuration.nix
64 mira = nixpkgs.lib.nixosSystem {
65 system = "x86_64-linux";
66 modules = [
67 # Your main configuration file
68 ./hosts/mira/configuration.nix
69 catppuccin.nixosModules.catppuccin
70 agenix.nixosModules.default
71
72 copyparty.nixosModules.default
73
74 ({
75 nixpkgs.overlays = [
76 niri.overlays.niri
77 copyparty.overlays.default
78 ];
79 })
80
81 # nixarr module
82 nixarr.nixosModules.default
83
84 # Home Manager module
85 home-manager.nixosModules.home-manager
86 {
87 home-manager.extraSpecialArgs = { inherit inputs; };
88 home-manager.users.sean = import ./hosts/mira/home.nix;
89 }
90 ];
91 specialArgs = { inherit inputs; };
92 };
93 framework16 = nixpkgs.lib.nixosSystem {
94 system = "x86_64-linux";
95 modules = [
96 # Your main configuration file
97 ./hosts/framework16/configuration.nix
98 catppuccin.nixosModules.catppuccin
99 nixos-hardware.nixosModules.framework-16-7040-amd
100
101 ({
102 nixpkgs.overlays = [ niri.overlays.niri ];
103 })
104
105 # Home Manager module
106 home-manager.nixosModules.home-manager
107 {
108 home-manager.extraSpecialArgs = { inherit inputs; };
109 home-manager.users.sean = import ./hosts/framework16/home.nix;
110 }
111 ];
112 specialArgs = { inherit inputs; };
113 };
114
115 pi = nixpkgs.lib.nixosSystem {
116 system = "aarch64-linux";
117 modules = [
118 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
119 nixos-hardware.nixosModules.raspberry-pi-4
120 agenix.nixosModules.default
121 ./hosts/pi/configuration.nix
122
123 # Allow missing kernel modules (Pi kernel doesn't have all x86 modules)
124 # See: https://github.com/NixOS/nixpkgs/issues/154163
125 ({
126 nixpkgs.overlays = [
127 (final: super: {
128 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
129 })
130 ];
131 })
132 ];
133 specialArgs = { inherit inputs; };
134 };
135
136 pizero = nixpkgs.lib.nixosSystem {
137 system = "aarch64-linux";
138 modules = [
139 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
140 agenix.nixosModules.default
141 ./hosts/pizero/configuration.nix
142
143 # Allow missing kernel modules (Pi kernel doesn't have all x86 modules)
144 ({
145 nixpkgs.overlays = [
146 (final: super: {
147 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
148 })
149 ];
150 })
151 ];
152 specialArgs = { inherit inputs; };
153 };
154
155 organelle = nixpkgs.lib.nixosSystem {
156 system = "aarch64-linux";
157 modules = [
158 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
159 agenix.nixosModules.default
160 ./hosts/organelle/configuration.nix
161
162 ({
163 nixpkgs.overlays = [
164 (final: super: {
165 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
166 })
167 ];
168 })
169 ];
170 specialArgs = { inherit inputs; };
171 };
172
173 kodi-pi = nixos-raspberrypi.lib.nixosSystemFull {
174 specialArgs = { inherit nixos-raspberrypi inputs; };
175 modules = [
176 ({ nixos-raspberrypi, ... }: {
177 imports = with nixos-raspberrypi.nixosModules; [
178 raspberry-pi-5.base
179 raspberry-pi-5.page-size-16k
180 raspberry-pi-5.display-vc4
181 ];
182 })
183 # Disable SDL3 test suite (testprocess fails in Nix sandbox)
184 ({ pkgs, ... }: {
185 nixpkgs.overlays = [
186 (final: prev: {
187 sdl3 = prev.sdl3.overrideAttrs (old: {
188 doCheck = false;
189 });
190 })
191 ];
192 })
193 agenix.nixosModules.default
194 ./hosts/kodi-pi/configuration.nix
195 ];
196 };
197 };
198 };
199}