yep, more dotfiles
1{ 2 description = "NixOS and Home Manager configuration for Milo's laptops"; 3 4 inputs = { 5 nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; 6 unixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 7 8 home-manager.url = "github:nix-community/home-manager/release-25.05"; 9 home-manager.inputs.nixpkgs.follows = "nixpkgs"; 10 11 nix-darwin.url = "github:LnL7/nix-darwin"; 12 nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; 13 14 agenix.url = "github:ryantm/agenix"; 15 agenix.inputs.nixpkgs.follows = "nixpkgs"; 16 agenix.inputs.home-manager.follows = "home-manager"; 17 18 disko.url = "github:nix-community/disko"; 19 disko.inputs.nixpkgs.follows = "nixpkgs"; 20 21 nixos-hardware.url = "github:nixos/nixos-hardware"; 22 23 srvos.url = "github:nix-community/srvos"; 24 # srvos.inputs.nixpkgs.follows = "srvos/nixpkgs"; 25 srvos.inputs.nixpkgs.follows = "nixpkgs"; 26 27 # ——— Packages 28 git-leave.url = "github:mrnossiom/git-leave"; 29 git-leave.inputs.nixpkgs.follows = "nixpkgs"; 30 31 helix.url = "github:helix-editor/helix"; 32 helix.inputs.nixpkgs.follows = "unixpkgs"; 33 34 jujutsu.url = "github:jj-vcs/jj"; 35 jujutsu.inputs.nixpkgs.follows = "unixpkgs"; 36 37 tangled.url = "git+https://tangled.org/@tangled.org/core"; 38 tangled.inputs.nixpkgs.follows = "unixpkgs"; 39 40 wakatime-ls.url = "github:mrnossiom/wakatime-ls"; 41 wakatime-ls.inputs.nixpkgs.follows = "nixpkgs"; 42 }; 43 44 outputs = { self, nixpkgs, ... }: 45 let 46 inherit (self) outputs; 47 inherit (flake-lib) forAllSystems; 48 49 flake-lib = import ./lib/flake (nixpkgs // { inherit self; }); 50 51 forAllPkgs = func: forAllSystems (system: func pkgs.${system}); 52 53 # This should be the only constructed nixpkgs instances in this flake 54 pkgs = forAllSystems (system: (import nixpkgs { 55 inherit system; 56 config.allowUnfreePredicate = import ./lib/unfree.nix { lib = nixpkgs.lib; }; 57 overlays = [ outputs.overlays.all ]; 58 })); 59 in 60 { 61 formatter = forAllPkgs (pkgs: pkgs.nixpkgs-fmt); 62 63 inherit flake-lib; # Nonstandard 64 lib = forAllPkgs (import ./lib); 65 templates = import ./templates; 66 67 apps = forAllPkgs (import ./apps { pkgs-per-system = pkgs; }); 68 devShells = forAllPkgs (import ./shells.nix); 69 overlays = import ./overlays (nixpkgs // { inherit self; }); 70 packages = forAllPkgs (import ./pkgs); 71 72 homeManagerModules = import ./modules/home-manager; 73 nixosModules = import ./modules/nixos; 74 75 # `nixos`, `home-manager` and `nix-darwin` configs are generic over `pkgs` and placed in `configurations.nix` 76 # `legacyPackages` tree structure is not checked by `nix flake check` but picked up by all rebuild tools 77 legacyPackages = forAllPkgs (import ./configurations.nix flake-lib); 78 }; 79}