{ description = "My NixOS Configurations Flake"; inputs = { # Source: https://github.com/NixOS/nixpkgs nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs-old.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs-latest.url = "github:nixos/nixpkgs"; # Source: https://github.com/nix-community/home-manager home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; # Source: https://github.com/NixOS/nixos-hardware nixos-hardware.url = "github:nixos/nixos-hardware"; # Source: https://github.com/Mic92/sops-nix sops-nix.url = "github:mic92/sops-nix"; # Source: https://github.com/nix-community/nix-vscode-extensions nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; # Source: https://github.com/catppuccin/nix catppuccin.url = "github:catppuccin/nix"; # Source: https://github.com/helix-editor/helix helix.url = "github:helix-editor/helix"; # Source: https://github.com/zedless-editor/zedless zedless-editor.url = "github:zedless-editor/zedless"; }; outputs = { nixpkgs, nixpkgs-old, nixpkgs-latest, ... }@inputs: let makeConfig = import ./lib/config.nix { inherit inputs nixpkgs nixpkgs-old nixpkgs-latest ; }; in { nixosConfigurations.template-hostname = makeConfig "thinkbook" { hostName = "template-hostname"; userName = "template"; additionalOverlays = [ inputs.nix-vscode-extensions.overlays.default ]; systemArch = "x86_64-linux"; }; nixosConfigurations.book = makeConfig "thinkbook" { hostName = "book"; userName = "geekiot"; additionalOverlays = [ inputs.nix-vscode-extensions.overlays.default ]; systemArch = "x86_64-linux"; }; }; }