1{
2 nixConfig = {
3 experimental-features = "nix-command flakes";
4 substitute = "true";
5 extra-substituters = [
6 "https://cache.nixos.org"
7 "https://nix-community.cachix.org"
8 "https://install.determinate.systems"
9 ];
10 trusted-public-keys = [
11 "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
12 "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
13 "cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM="
14 ];
15 cores = 0;
16 max-jobs = 2;
17 netrc-file = "/home/thehedgehog/.netrc";
18 };
19 description = "PyroNet machines and services";
20
21 inputs = {
22 flake-parts = {
23 url = "github:hercules-ci/flake-parts";
24 };
25 nixpkgs.url = "https://nixpkgs.dev/channel/nixpkgs-unstable";
26 nixpkgs-stalwart-fix.url = "github:pyrox0/nixpkgs/fix/stalwart-module";
27 # Overrides
28 flake-compat.url = "github:edolstra/flake-compat";
29 flake-utils = {
30 url = "github:numtide/flake-utils";
31 };
32
33 # Inputs
34 agenix = {
35 url = "github:ryantm/agenix";
36 inputs = {
37 nixpkgs.follows = "nixpkgs";
38 home-manager.follows = "home-manager";
39 };
40 };
41 buildbot-nix = {
42 url = "github:nix-community/buildbot-nix";
43 inputs.nixpkgs.follows = "nixpkgs";
44 inputs.flake-parts.follows = "flake-parts";
45 inputs.treefmt-nix.follows = "";
46 };
47 caelestia = {
48 url = "github:caelestia-dots/shell";
49 inputs.nixpkgs.follows = "nixpkgs";
50 inputs.quickshell.follows = "quickshell";
51 };
52 ctp = {
53 url = "github:catppuccin/nix";
54 };
55 dix = {
56 url = "https://flakehub.com/f/DeterminateSystems/nix-src/*";
57 inputs = {
58 nixpkgs.follows = "nixpkgs";
59 nixpkgs-regression.follows = "";
60 nixpkgs-23-11.follows = "";
61
62 flake-parts.follows = "";
63 git-hooks-nix.follows = "";
64 };
65 };
66 determinate = {
67 url = "github:DeterminateSystems/determinate";
68 inputs = {
69 nixpkgs.follows = "nixpkgs";
70 nix.follows = "dix";
71 };
72 };
73 dms = {
74 url = "github:AvengeMedia/DankMaterialShell";
75 inputs.nixpkgs.follows = "nixpkgs";
76 };
77 # DMS Plugins
78 dms-wp-shuffler = {
79 url = "github:Daniel-42-z/dms-wallpaper-shuffler";
80 flake = false;
81 };
82 dms-power-usage = {
83 url = "github:Daniel-42-z/dms-power-usage";
84 flake = false;
85 };
86 dms-plugins = {
87 url = "github:AvengeMedia/dms-plugins";
88 flake = false;
89 };
90 easy-hosts.url = "github:tgirlcloud/easy-hosts";
91 golink = {
92 url = "github:tailscale/golink";
93 inputs.nixpkgs.follows = "nixpkgs";
94 };
95 hardware = {
96 url = "github:nixos/nixos-hardware";
97 };
98 home-manager = {
99 url = "github:nix-community/home-manager";
100 inputs.nixpkgs.follows = "nixpkgs";
101 };
102 nix-index-database = {
103 url = "github:Mic92/nix-index-database";
104 inputs.nixpkgs.follows = "nixpkgs";
105 };
106 my-pkgs = {
107 url = "git+https://git.pyrox.dev/pyrox/pkgs";
108 inputs.nixpkgs.follows = "nixpkgs";
109 };
110 quickshell = {
111 url = "github:quickshell-mirror/quickshell";
112 inputs.nixpkgs.follows = "nixpkgs";
113 };
114 tangled = {
115 url = "git+https://tangled.org/@tangled.org/core";
116 };
117 };
118
119 outputs =
120 inputs:
121 inputs.flake-parts.lib.mkFlake { inherit inputs; } {
122 # Systems we want to build for
123 systems = [
124 "x86_64-linux"
125 ];
126
127 # Flake modules
128 imports = [
129 inputs.easy-hosts.flakeModule
130 inputs.home-manager.flakeModules.home-manager
131 ./packages
132 ./lib
133 ./overlays
134 ./devShells
135 ./nixosModules
136 ./homeModules
137 ./templates
138 ./hosts
139 ];
140
141 # # Flake attributes
142 # flake = {
143 #
144 # };
145
146 # Per-system stuff
147 perSystem =
148 {
149 pkgs,
150 system,
151 ...
152 }:
153 {
154 _module.args.pkgs = import inputs.nixpkgs {
155 inherit system;
156 overlays = [
157 inputs.self.overlays.openssh-fixperms
158 inputs.golink.overlays.default
159 ];
160 config = {
161 allowUnfree = true;
162 };
163 };
164 formatter = pkgs.nixfmt;
165 };
166 # Enable debugging for nixd
167 debug = true;
168 };
169}