yep, more dotfiles
at main 3.2 kB view raw
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 nix-alien.url = "github:thiagokokada/nix-alien"; 43 nix-alien.inputs.nixpkgs.follows = "nixpkgs"; 44 45 tangled.url = "git+https://tangled.org/tangled.org/core"; 46 tangled.inputs.nixpkgs.follows = "unixpkgs"; 47 48 wakatime-ls.url = "github:mrnossiom/wakatime-ls"; 49 wakatime-ls.inputs.nixpkgs.follows = "nixpkgs"; 50 51 zen-browser.url = "github:0xc000022070/zen-browser-flake"; 52 zen-browser.inputs.nixpkgs.follows = "unixpkgs"; 53 zen-browser.inputs.home-manager.follows = "home-manager"; 54 }; 55 56 outputs = { self, nixpkgs, ... }: 57 let 58 inherit (self) outputs; 59 inherit (flake-lib) forAllSystems; 60 61 flake-lib = import ./lib/flake (nixpkgs // { inherit self; }); 62 63 # This should be the only constructed nixpkgs instances in this flake 64 allPkgs = forAllSystems (system: (import nixpkgs { 65 inherit system; 66 config.allowUnfreePredicate = import ./lib/unfree.nix { lib = nixpkgs.lib; }; 67 overlays = [ outputs.overlays.all ]; 68 })); 69 70 forAllPkgs = func: forAllSystems (system: func allPkgs.${system}); 71 in 72 { 73 formatter = forAllPkgs (pkgs: pkgs.nixpkgs-fmt); 74 75 inherit flake-lib; # Nonstandard 76 lib = forAllPkgs (import ./lib); 77 templates = import ./templates; 78 79 apps = forAllPkgs (import ./apps { pkgs-per-system = allPkgs; }); 80 devShells = forAllPkgs (import ./shells.nix); 81 overlays = import ./overlays (nixpkgs // { inherit self; }); 82 packages = forAllPkgs (import ./pkgs); 83 84 homeManagerModules = import ./modules/home-manager; 85 nixosModules = import ./modules/nixos; 86 87 # `nixos`, `home-manager` and `nix-darwin` configs are generic over `pkgs` and placed in `configurations.nix` 88 # `legacyPackages` tree structure is not checked by `nix flake check` but picked up by all rebuild tools 89 legacyPackages = forAllPkgs (import ./configurations.nix flake-lib); 90 }; 91}