{ description = "CrOS Ecosystem"; outputs = { self, nixpkgs, ... }@inputs: let inherit (self) outputs; # Architectures forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" ]; # Extend lib with lib.custom lib = nixpkgs.lib.extend (self: super: { custom = import ./lib { inherit (nixpkgs) lib; }; }); in { # Overlays overlays = import ./overlays { inherit inputs; }; # Host Configurations nixosConfigurations = builtins.listToAttrs ( map (host: { name = host; value = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs lib; isDarwin = false; }; modules = [ ./hosts/nixos/${host} ]; }; }) (builtins.attrNames (builtins.readDir ./hosts/nixos)) ); # For later, to enable if we get any darwin hosts # darwinConfigurations = builtins.listToAttrs ( # map (host: { # name = host; # value = nix-darwin.lib.darwinSystem { # specialArgs = { # inherit inputs outputs lib; # isDarwin = true; # }; # modules = [ ./hosts/darwin/${host} ]; # }; # }) (builtins.attrNames (builtins.readDir ./hosts/darwin)) # ); #packages = forAllSystems ( # system: let # pkgs = import nixpkgs { # inherit system; # overlays = [self.overlays.default]; # }; # in # nixpkgs.lib.packagesFromDirectoryRecursive { # callPackage = nixpkgs.lib.callPackageWith pkgs; # directory = ./pkgs/common; # } #); devShells = forAllSystems ( system: let pkgs = import nixpkgs { inherit system; #overlays = [self.overlays.default]; }; in builtins.listToAttrs ( map (name: { inherit name; value = import ./devshells/${name} { inherit pkgs inputs outputs; }; }) (builtins.attrNames (builtins.readDir ./devshells)) ) ); }; inputs = { # Official inputs nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; hardware.url = "github:nixos/nixos-hardware"; nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.11-darwin"; nix-darwin = { url = "github:lnl7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs-darwin"; }; home-manager = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; impermanence.url = "github:nix-community/impermanence"; # 3rd party inputs disko = { # Declarative partitioning url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; iamb-flake.url = "github:ulyssa/iamb/v0.0.11-alpha.1"; quadlet-nix.url = "github:SEIAROTg/quadlet-nix"; deferred-apps.url = "github:WitteShadovv/deferred-apps"; dms = { url = "github:AvengeMedia/DankMaterialShell/stable"; inputs.nixpkgs.follows = "nixpkgs"; }; # CrOS inputs nix-secrets.url = "git+ssh://git@github.com/TheWanderingCrow/nix-secrets"; nvix.url = "github:TheWanderingCrow/nvix"; actualbudget-report.url = "git+https://git.wanderingcrow.net/TheWanderingCrow/actualbudget-report"; }; }