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