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