Extract the reusable core module list into modules/default.nix (single source of truth) and expose it as nixosModules.omnixy / .default. configuration.nix now imports ./modules instead of listing each module, so this repo's hosts and external consumers share one definition. Theme stays a settings.theme-driven import inside the aggregate. Packs, dev-env, sops and home-manager remain injected by mkSystem. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
48 lines
1.4 KiB
Nix
48 lines
1.4 KiB
Nix
# Omnixient core module aggregate.
|
|
#
|
|
# The reusable Omnixient module set as a single importable module, used from
|
|
# one source of truth in two places:
|
|
# - configuration.nix imports it for this repo's own hosts;
|
|
# - it's exposed as `nixosModules.omni` (flake.nix) so an external
|
|
# consumer can `imports = [ omni.nixosModules.omni ]` from their
|
|
# own flake without forking.
|
|
#
|
|
# Deliberately NOT here:
|
|
# - modules/packs and modules/dev-env — injected separately by
|
|
# lib/mksystem.nix (packs unconditionally, dev-env opt-in);
|
|
# - hardware-configuration.nix — per-host;
|
|
# - the sops-nix / home-manager modules — injected by mkSystem.
|
|
#
|
|
# The active theme is selected from `settings.theme` (a specialArg
|
|
# provided by mkSystem), matching the prior configuration.nix behavior.
|
|
{
|
|
imports = [
|
|
./lib.nix
|
|
./core.nix
|
|
./colors.nix
|
|
./boot.nix
|
|
./security.nix
|
|
./secrets.nix
|
|
./fastfetch.nix
|
|
./walker.nix
|
|
./scripts.nix
|
|
./menus.nix
|
|
./desktop/hyprland.nix
|
|
./packages.nix
|
|
./development.nix
|
|
./mcp.nix
|
|
./users.nix
|
|
./services.nix
|
|
./hardware
|
|
|
|
# Theme: import the colorscheme module named by settings.theme. Kept
|
|
# as a settings-driven dynamic import (rather than importing all 12
|
|
# and guarding each) so the closure stays minimal.
|
|
(
|
|
{ settings, ... }:
|
|
{
|
|
imports = [ ./themes/${settings.theme}.nix ];
|
|
}
|
|
)
|
|
];
|
|
}
|