{ description = "n8 NixOS Configuration Flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:/nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { url = "github:/nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; webtray = { url = "git+https://git.nathanreiner.xyz/webtray"; inputs.nixpkgs.follows = "nixpkgs"; }; wofi-pass = { url = "git+https://git.nathanreiner.xyz/wofi-pass"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, nixpkgs-unstable, ... }@attrs: let system = "x86_64-linux"; overlay-unstable = final: prev: { unstable = import nixpkgs-unstable { inherit system; config.allowUnfree = true; }; }; host-config = name: nixpkgs.lib.nixosSystem { inherit system; specialArgs = attrs; modules = [ ( { ... }: { nixpkgs.overlays = [ overlay-unstable ]; nixpkgs.config.allowUnfree = true; } ) ./hosts/${name} ./common ]; }; hosts = [ "template" "nixedo" "workstation" ]; in { nixosConfigurations = builtins.listToAttrs ( map (n: { name = n; value = host-config n; }) hosts ); }; }