44 lines
1.7 KiB
Nix
44 lines
1.7 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";
|
|
}
|