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/nix-darwin-25.05"; 12 nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; 13 14 stylix.url = "github:nix-community/stylix/release-25.05"; 15 stylix.inputs.nixpkgs.follows = "nixpkgs"; 16 17 ## Miscellaneous 18 19 agenix.url = "github:ryantm/agenix/0.15.0"; 20 agenix.inputs.nixpkgs.follows = "nixpkgs"; 21 agenix.inputs.home-manager.follows = "home-manager"; 22 23 disko.url = "github:nix-community/disko/v1.11.0"; 24 disko.inputs.nixpkgs.follows = "nixpkgs"; 25 26 nixos-hardware.url = "github:nixos/nixos-hardware"; 27 28 lanzaboote.url = "github:nix-community/lanzaboote/v0.4.3"; 29 lanzaboote.inputs.nixpkgs.follows = "unixpkgs"; 30 31 srvos.url = "github:nix-community/srvos"; 32 srvos.inputs.nixpkgs.follows = "nixpkgs"; 33 34 ## Packages 35 36 git-leave.url = "github:mrnossiom/git-leave"; 37 git-leave.inputs.nixpkgs.follows = "nixpkgs"; 38 39 tangled.url = "git+https://tangled.org/@tangled.org/core"; 40 tangled.inputs.nixpkgs.follows = "unixpkgs"; 41 42 wakatime-ls.url = "github:mrnossiom/wakatime-ls"; 43 wakatime-ls.inputs.nixpkgs.follows = "nixpkgs"; 44 45 zen-browser.url = "github:0xc000022070/zen-browser-flake"; 46 zen-browser.inputs.nixpkgs.follows = "unixpkgs"; 47 zen-browser.inputs.home-manager.follows = "home-manager"; 48 }; 49 50 outputs = { self, nixpkgs, ... }: 51 let 52 inherit (self) outputs; 53 inherit (flake-lib) forAllSystems; 54 55 flake-lib = import ./lib/flake (nixpkgs // { inherit self; }); 56 57 forAllPkgs = func: forAllSystems (system: func pkgs.${system}); 58 59 # This should be the only constructed nixpkgs instances in this flake 60 pkgs = forAllSystems (system: (import nixpkgs { 61 inherit system; 62 config.allowUnfreePredicate = import ./lib/unfree.nix { lib = nixpkgs.lib; }; 63 overlays = [ outputs.overlays.all ]; 64 })); 65 in 66 { 67 formatter = forAllPkgs (pkgs: pkgs.nixpkgs-fmt); 68 69 inherit flake-lib; # Nonstandard 70 lib = forAllPkgs (import ./lib); 71 templates = import ./templates; 72 73 apps = forAllPkgs (import ./apps { pkgs-per-system = pkgs; }); 74 devShells = forAllPkgs (import ./shells.nix); 75 overlays = import ./overlays (nixpkgs // { inherit self; }); 76 packages = forAllPkgs (import ./pkgs); 77 78 homeManagerModules = import ./modules/home-manager; 79 nixosModules = import ./modules/nixos; 80 81 # `nixos`, `home-manager` and `nix-darwin` configs are generic over `pkgs` and placed in `configurations.nix` 82 # `legacyPackages` tree structure is not checked by `nix flake check` but picked up by all rebuild tools 83 legacyPackages = forAllPkgs (import ./configurations.nix flake-lib); 84 }; 85}