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