My Nix Configuration
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}