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 = "github: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 inputs.quickshell.follows = "quickshell";
77 };
78 # DMS Plugins
79 dms-wp-shuffler = {
80 url = "github:Daniel-42-z/dms-wallpaper-shuffler";
81 flake = false;
82 };
83 dms-power-usage = {
84 url = "github:Daniel-42-z/dms-power-usage";
85 flake = false;
86 };
87 dms-plugins = {
88 url = "github:AvengeMedia/dms-plugins";
89 flake = false;
90 };
91 easy-hosts.url = "github:tgirlcloud/easy-hosts";
92 golink = {
93 url = "github:tailscale/golink";
94 inputs.nixpkgs.follows = "nixpkgs";
95 };
96 hardware = {
97 url = "github:nixos/nixos-hardware";
98 };
99 home-manager = {
100 url = "github:nix-community/home-manager";
101 inputs.nixpkgs.follows = "nixpkgs";
102 };
103 nix-index-database = {
104 url = "github:Mic92/nix-index-database";
105 inputs.nixpkgs.follows = "nixpkgs";
106 };
107 my-pkgs = {
108 url = "git+https://git.pyrox.dev/pyrox/pkgs";
109 inputs.nixpkgs.follows = "nixpkgs";
110 };
111 quickshell = {
112 url = "github:quickshell-mirror/quickshell";
113 inputs.nixpkgs.follows = "nixpkgs";
114 };
115 tangled = {
116 url = "git+https://tangled.org/@tangled.org/core";
117 };
118 };
119
120 outputs =
121 inputs:
122 inputs.flake-parts.lib.mkFlake { inherit inputs; } {
123 # Systems we want to build for
124 systems = [
125 "x86_64-linux"
126 ];
127
128 # Flake modules
129 imports = [
130 inputs.easy-hosts.flakeModule
131 inputs.home-manager.flakeModules.home-manager
132 ./packages
133 ./lib
134 ./overlays
135 ./devShells
136 ./nixosModules
137 ./homeModules
138 ./templates
139 ./hosts
140 ];
141
142 # # Flake attributes
143 # flake = {
144 #
145 # };
146
147 # Per-system stuff
148 perSystem =
149 {
150 pkgs,
151 system,
152 ...
153 }:
154 {
155 _module.args.pkgs = import inputs.nixpkgs {
156 inherit system;
157 overlays = [
158 inputs.self.overlays.openssh-fixperms
159 inputs.golink.overlays.default
160 ];
161 config = {
162 allowUnfree = true;
163 };
164 };
165 formatter = pkgs.nixfmt;
166 };
167 # Enable debugging for nixd
168 debug = true;
169 };
170}