nix-config/flake.nix
2024-12-27 15:08:02 +01:00

175 lines
4.3 KiB
Nix

{
description = "My NixOS desktop and server configs";
inputs = {
# NixOS official package source, using the nixos-23.11 branch here
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:nixos/nixos-hardware";
# Declarative dotfile management
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# Declarative partitioning and formatting
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url ="github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
zen = {
url = "github:MarceColl/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
jovian = {
url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs";
};
# Secrets management. See ./docs/secretsmgmt.md
sops-nix = {
url = "github:mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, ... }@attrs:
let
lib = nixpkgs.lib;
in
{
nixosConfigurations = {
Lenni = let
system = "x86_64-linux";
in
lib.nixosSystem {
specialArgs = {
hostname = "Lenni";
inherit attrs;
inherit system;
};
modules = [
attrs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
}
attrs.sops-nix.nixosModules.sops
attrs.disko.nixosModules.disko
attrs.stylix.nixosModules.stylix
attrs.nixvim.nixosModules.nixvim
attrs.nixos-hardware.nixosModules.framework-12th-gen-intel
./hosts/Lenni
./pkgs
];
};
Puenktchen = let
system = "x86_64-linux";
in
lib.nixosSystem {
specialArgs = {
hostname = "Puenktchen";
inherit attrs;
inherit system;
};
modules = [
attrs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
}
attrs.sops-nix.nixosModules.sops
attrs.disko.nixosModules.disko
attrs.stylix.nixosModules.stylix
attrs.nixvim.nixosModules.nixvim
attrs.nixos-hardware.nixosModules.common-cpu-amd
attrs.nixos-hardware.nixosModules.common-cpu-amd-pstate
attrs.nixos-hardware.nixosModules.common-cpu-amd-zenpower
./hosts/Puenktchen
./pkgs
];
};
Anton = let
system = "x86_64-linux";
in
lib.nixosSystem {
specialArgs = {
hostname = "Anton";
inherit attrs;
inherit system;
};
modules = [
attrs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
}
attrs.sops-nix.nixosModules.sops
attrs.disko.nixosModules.disko
attrs.stylix.nixosModules.stylix
attrs.nixvim.nixosModules.nixvim
attrs.nixos-hardware.nixosModules.common-cpu-amd
attrs.nixos-hardware.nixosModules.common-cpu-amd-pstate
attrs.nixos-hardware.nixosModules.common-cpu-amd-zenpower
./hosts/Anton
./pkgs
];
};
Lillie = let
system = "x86_64-linux";
in
lib.nixosSystem {
specialArgs = {
hostname = "Lillie";
inherit attrs;
inherit system;
};
modules = [
attrs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
}
attrs.sops-nix.nixosModules.sops
attrs.disko.nixosModules.disko
attrs.stylix.nixosModules.stylix
attrs.nixvim.nixosModules.nixvim
attrs.jovian.nixosModules.default
./hosts/Lillie
./pkgs
];
};
};
};
}