Files
nix-config/flake.nix

107 lines
3.2 KiB
Nix

{
description = "L config";
inputs = {
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
home-manager = {
url = "github:nix-community/home-manager?ref=release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim?ref=nixos-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager-unstable = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixvim-unstable = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
sops-nix-unstable = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
firefox-addons-unstable = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
};
outputs =
inputs:
let
system = "x86_64-linux";
in
{
nixosConfigurations =
let
nixosSystem =
name: stable: hostConfig:
if stable then
inputs.nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs system name;
};
modules = [
./hosts/${name}/configuration.nix
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.home-manager
{
home-manager.useUserPackages = true;
home-manager.users.vbm = ./hosts/${name}/home.nix;
home-manager.extraSpecialArgs = { inherit inputs system stable; };
home-manager.sharedModules = [
inputs.nixvim.homeModules.nixvim
inputs.sops-nix.homeManagerModules.sops
];
}
];
}
else
inputs.nixpkgs-unstable.lib.nixosSystem {
specialArgs = {
inherit inputs system name;
};
modules = [
./hosts/${name}/configuration.nix
inputs.sops-nix-unstable.nixosModules.sops
inputs.home-manager-unstable.nixosModules.home-manager
{
home-manager-unstable.useUserPackages = true;
home-manager-unstable.users.vbm = ./hosts/${name}/home.nix;
home-manager-unstable.extraSpecialArgs = { inherit inputs system stable; };
home-manager-unstable.sharedModules = [
inputs.nixvim-unstable.homeModules.nixvim
inputs.sops-nix-unstable.homeManagerModules.sops
];
}
];
};
in
{
talos = nixosSystem "talos" false { };
perseus = nixosSystem "perseus" true { };
};
};
}