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