nix/flake.nix
2025-11-05 13:40:27 -05:00

75 lines
2 KiB
Nix

{
description = "My NixOS Configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
catppuccin = {
url = "github:catppuccin/nix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
apple-silicon = {
url = "github:nix-community/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, catppuccin, home-manager, apple-silicon, ... }:
let
mkNixosSystem = { name, system, hostModule, extraModules ? [] }:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit catppuccin; };
modules = [
./hosts/all.nix
hostModule
catppuccin.nixosModules.catppuccin
home-manager.nixosModules.home-manager
] ++ extraModules;
};
mkHomeConfig = { user, system }:
home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { inherit system; };
modules = [
./home/all.nix
catppuccin.homeModules.catppuccin
];
};
in
{
nixosConfigurations = {
peach = mkNixosSystem {
name = "peach";
system = "aarch64-linux";
hostModule = ./hosts/peach.nix;
extraModules = [
./hardware/peach.nix
apple-silicon.nixosModules.default
{ nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; }
];
};
alien = mkNixosSystem {
name = "alien";
system = "x86_64-linux";
hostModule = ./hosts/alien.nix;
extraModules = [
./hardware/alien.nix
];
};
};
homeConfigurations = {
peach = mkHomeConfig { user = "sckova"; system = "aarch64-linux"; };
alien = mkHomeConfig { user = "sckova"; system = "x86_64-linux"; };
};
};
}