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 = "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}