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 trmnl-rs = {
31 url = "github:seanaye/trmnl-rs";
32 inputs.nixpkgs.follows = "nixpkgs";
33 };
34 };
35
36 outputs =
37 {
38 self,
39 nixpkgs,
40 home-manager,
41 catppuccin,
42 niri,
43 nixarr,
44 copyparty,
45 nixos-hardware,
46 agenix,
47 organelle-hello,
48 ...
49 }@inputs:
50 {
51 nixosConfigurations = {
52 # Replace "nixos" with your actual desired hostname if it's different
53 # This "nixos" must match the `networking.hostName` in your configuration.nix
54 mira = nixpkgs.lib.nixosSystem {
55 system = "x86_64-linux";
56 modules = [
57 # Your main configuration file
58 ./hosts/mira/configuration.nix
59 catppuccin.nixosModules.catppuccin
60
61 copyparty.nixosModules.default
62
63 ({
64 nixpkgs.overlays = [
65 niri.overlays.niri
66 copyparty.overlays.default
67 ];
68 })
69
70 # nixarr module
71 nixarr.nixosModules.default
72
73 # Home Manager module
74 home-manager.nixosModules.home-manager
75 {
76 home-manager.extraSpecialArgs = { inherit inputs; };
77 home-manager.users.sean = import ./hosts/mira/home.nix;
78 }
79 ];
80 specialArgs = { inherit inputs; };
81 };
82 framework16 = nixpkgs.lib.nixosSystem {
83 system = "x86_64-linux";
84 modules = [
85 # Your main configuration file
86 ./hosts/framework16/configuration.nix
87 catppuccin.nixosModules.catppuccin
88 nixos-hardware.nixosModules.framework-16-7040-amd
89
90 ({
91 nixpkgs.overlays = [ niri.overlays.niri ];
92 })
93
94 # Home Manager module
95 home-manager.nixosModules.home-manager
96 {
97 home-manager.extraSpecialArgs = { inherit inputs; };
98 home-manager.users.sean = import ./hosts/framework16/home.nix;
99 }
100 ];
101 specialArgs = { inherit inputs; };
102 };
103
104 pi = nixpkgs.lib.nixosSystem {
105 system = "aarch64-linux";
106 modules = [
107 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
108 nixos-hardware.nixosModules.raspberry-pi-4
109 agenix.nixosModules.default
110 ./hosts/pi/configuration.nix
111
112 # Allow missing kernel modules (Pi kernel doesn't have all x86 modules)
113 # See: https://github.com/NixOS/nixpkgs/issues/154163
114 ({
115 nixpkgs.overlays = [
116 (final: super: {
117 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
118 })
119 ];
120 })
121 ];
122 specialArgs = { inherit inputs; };
123 };
124
125 pizero = nixpkgs.lib.nixosSystem {
126 system = "aarch64-linux";
127 modules = [
128 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
129 agenix.nixosModules.default
130 ./hosts/pizero/configuration.nix
131
132 # Allow missing kernel modules (Pi kernel doesn't have all x86 modules)
133 ({
134 nixpkgs.overlays = [
135 (final: super: {
136 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
137 })
138 ];
139 })
140 ];
141 specialArgs = { inherit inputs; };
142 };
143
144 organelle = nixpkgs.lib.nixosSystem {
145 system = "aarch64-linux";
146 modules = [
147 "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
148 agenix.nixosModules.default
149 ./hosts/organelle/configuration.nix
150
151 ({
152 nixpkgs.overlays = [
153 (final: super: {
154 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
155 })
156 ];
157 })
158 ];
159 specialArgs = { inherit inputs; };
160 };
161 };
162 };
163}