feat: implement modular foundation and core system services

- Update flake.nix with 25.11 release and core inputs
- Add dedicated modules for audio (Pipewire), bluetooth, and networking
- Update GEMINI.md with the new Modular Merging Architecture blueprint
- Configure graphical installer ISO and test VM outputs
This commit is contained in:
Bernardo Magri
2026-04-03 21:06:42 +01:00
parent 33deeb494b
commit 29cc0d2547
49 changed files with 1628 additions and 855 deletions

68
modules/options.nix Normal file
View File

@@ -0,0 +1,68 @@
{ config, lib, pkgs, ... }:
with lib;
{
options.nomarchy = {
# System-level options
system = {
enable = mkEnableOption "Nomarchy core system features";
# Allow users to add extra system packages
extraPackages = mkOption {
type = types.listOf types.package;
default = [];
description = "Additional system-wide packages to install";
};
# Allow overriding system defaults
hostname = mkOption {
type = types.str;
default = "nomarchy";
description = "The system hostname";
};
# Allow user to inject their own NixOS modules
extraModules = mkOption {
type = types.listOf types.deferredModule;
default = [];
description = "Extra NixOS modules to include";
};
};
# Home-level options
home = {
enable = mkEnableOption "Nomarchy home environment features";
# Allow users to add extra user packages
extraPackages = mkOption {
type = types.listOf types.package;
default = [];
description = "Additional user-level packages to install";
};
# Configuration for the environment
terminal = mkOption {
type = types.enum [ "alacritty" "kitty" "ghostty" ];
default = "alacritty";
description = "Preferred terminal emulator";
};
# Allow user to inject their own Home Manager modules
extraModules = mkOption {
type = types.listOf types.deferredModule;
default = [];
description = "Extra Home Manager modules to include";
};
# Theming overrides
themeOverride = mkOption {
type = types.nullOr types.str;
default = null;
description = "Force a specific theme (ignoring state files)";
};
};
# Hardware flags (already exists in hardware.nix, but good to keep in mind)
};
}