{ description = "Home Manager && NixOS configuration"; inputs = { nixos-hardware.url = "github:NixOS/nixos-hardware"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; deploy-rs = { url = "github:serokell/deploy-rs"; inputs.nixpkgs.follows = "nixpkgs"; }; microvm = { url = "github:microvm-nix/microvm.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*"; jj-vine = { url = "github:abrenneke/jj-vine"; flake = false; }; dart.url = "github:iofq/dart.nvim"; neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; llm-agents.url = "github:numtide/llm-agents.nix"; jj-nvim = { url = "github:NicolasGB/jj.nvim"; flake = false; }; docker-nixpkgs = { url = "github:nix-community/docker-nixpkgs"; flake = false; }; }; outputs = { self, nixpkgs, ... }@inputs: let attrs = { username = "e"; }; systems = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; mkPkgs = system: import nixpkgs { inherit system; config.allowUnfree = true; overlays = [ inputs.neovim-nightly-overlay.overlays.default inputs.llm-agents.overlays.default inputs.self.overlays.stable-packages (import "${inputs.docker-nixpkgs}/overlay.nix") ( final: prev: import ./pkgs { inherit inputs; pkgs = prev; } ) ]; }; eachSystem = f: nixpkgs.lib.genAttrs systems (system: f (mkPkgs system)); treefmtEval = eachSystem ( pkgs: (inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix).config.build.wrapper ); in { overlays = import ./overlays { inherit inputs; }; nixosConfigurations = import ./nixos { inherit inputs mkPkgs attrs; }; homeConfigurations = import ./home-manager { inherit inputs mkPkgs attrs; }; deploy.nodes = import ./fleet.nix { inherit inputs self; }; formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}); packages = eachSystem (pkgs: import ./pkgs { inherit inputs pkgs; }); devShells = eachSystem (pkgs: { default = import ./shell.nix { inherit pkgs; }; }); }; }