{ description = "NixOS configuration"; inputs = { nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; disko-stable = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; disko-unstable = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; home-manager-unstable = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; mailserver = { url = "gitlab:simple-nixos-mailserver/nixos-mailserver?ref=nixos-25.05"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; "lolcat++-stable" = { url = "github:lolcatpp/lolcatpp"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; "lolcat++-unstable" = { url = "github:lolcatpp/lolcatpp"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; dotfiles = { url = "path:/home/love/dotfiles"; inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.home-manager.follows = "home-manager-unstable"; }; }; outputs = inputs@{ nixpkgs-stable, nixpkgs-unstable, disko-stable, disko-unstable, home-manager-unstable, dotfiles, ... }: let mkHost = { hostPath, nixpkgs, disko, lolcat, }: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inputs = inputs // { "lolcat++" = lolcat; }; }; modules = [ disko.nixosModules.disko hostPath ]; }; mkDesktopHost = { hostPath, nixpkgs, disko, lolcat, }: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inputs = inputs // { "lolcat++" = lolcat; }; }; modules = [ disko.nixosModules.disko home-manager-unstable.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.backupFileExtension = "hm-backup"; home-manager.users.love = import "${dotfiles}/home.nix"; } hostPath ]; }; in { nixosConfigurations = { Kronos = mkDesktopHost { hostPath = ./hosts/kronos; nixpkgs = nixpkgs-unstable; disko = disko-unstable; lolcat = inputs."lolcat++-unstable"; }; kronos = mkDesktopHost { hostPath = ./hosts/kronos; nixpkgs = nixpkgs-unstable; disko = disko-unstable; lolcat = inputs."lolcat++-unstable"; }; Hermes = mkHost { hostPath = ./hosts/hermes; nixpkgs = nixpkgs-stable; disko = disko-stable; lolcat = inputs."lolcat++-stable"; }; hermes = mkHost { hostPath = ./hosts/hermes; nixpkgs = nixpkgs-stable; disko = disko-stable; lolcat = inputs."lolcat++-stable"; }; }; }; }