Files
athenix/installer/modules.nix
2025-12-29 17:18:54 -05:00

59 lines
1.8 KiB
Nix

# ============================================================================
# NixOS Modules Export
# ============================================================================
# This file exposes host types and software configurations as reusable NixOS
# modules that can be imported by external flakes or configurations.
#
# Usage in another flake:
# # Full host type configurations (includes hardware + software + system config)
# inputs.nixos-systems.nixosModules.nix-desktop
# inputs.nixos-systems.nixosModules.nix-laptop
#
# # Software-only configurations (for custom hardware setups)
# inputs.nixos-systems.nixosModules.sw-desktop
# inputs.nixos-systems.nixosModules.sw-headless
{ inputs }:
let
# Software modules with their dependencies bundled
mkSwModule =
swType:
{
config,
lib,
pkgs,
...
}:
{
imports = [
../sw/ghostty.nix
../sw/nvim.nix
../sw/python.nix
../sw/theme.nix
(import ../sw/${swType} {
inherit
config
lib
pkgs
inputs
;
})
];
};
in
{
# Host type modules (full system configurations)
nix-desktop = import ../hosts/types/nix-desktop.nix { inherit inputs; };
nix-laptop = import ../hosts/types/nix-laptop.nix { inherit inputs; };
nix-surface = import ../hosts/types/nix-surface.nix { inherit inputs; };
nix-lxc = import ../hosts/types/nix-lxc.nix { inherit inputs; };
nix-wsl = import ../hosts/types/nix-wsl.nix { inherit inputs; };
nix-ephemeral = import ../hosts/types/nix-ephemeral.nix { inherit inputs; };
# Software-only modules (for mixing with custom hardware configs)
sw-desktop = mkSwModule "desktop";
sw-headless = mkSwModule "headless";
sw-stateless-kiosk = mkSwModule "stateless-kiosk";
sw-tablet-kiosk = mkSwModule "tablet-kiosk";
}