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