nixos/flake.nix
2026-01-11 17:24:24 +00:00

90 lines
2.4 KiB
Nix
Executable file

{
description = "Personal system configurations";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
impermanence.url = "github:nix-community/impermanence";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, flake-parts, ... } @ inputs: let
inherit (self) outputs;
in
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
inputs.home-manager.flakeModules.home-manager
];
# Systems the "perSystem" option will target.
systems = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
"i686-linux"
];
# Outputs for each above defined system.
perSystem = { pkgs, ... }: {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
just
];
};
};
# Flake configuration attributes.
flake = {
# Reusable nixos modules one might want to export.
# Usually bundled pre-configured configuration toggles for my systems.
nixosModules = import ./modules/nixos;
# Reusable home-manager modules one might want to export.
# Usually bundled pre-configured configuration toggles for my homes.
homeManagerModules = import ./modules/home-manager;
nixosConfigurations = {
cl-00-00 = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs outputs; };
modules = [
./hosts/cl-00-00/system/system.nix
];
};
};
homeConfigurations = {
"kurisu@cl-00-00" = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
modules = [
./hosts/cl-00-00/homes/kurisu/home.nix
];
};
"admin@cl-00-00" = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
modules = [
./hosts/cl-00-00/homes/admin/default.nix
];
};
};
};
};
}