Files
nix/flake.nix
T
2026-04-07 19:25:39 +02:00

123 lines
3.1 KiB
Nix

{
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";
};
};
};
}