refactor: make hosts declarative and consolidate shared config
- add my.username / my.gaming.enable / my.ai.local.enable options and gate optional app modules on them instead of per-host import lists - move vendor-neutral hardware.graphics into modules/graphical, leaving only NVIDIA-specific drivers and env vars in modules/hardware/nvidia - derive the primary user everywhere from my.username (users, getty, home-manager, tmpfiles) - de-duplicate Hyprland autostart down to a single system loginShellInit using the start-hyprland wrapper - consolidate all nixpkgs overlays into modules/core/nix.nix and use final.stdenv.hostPlatform.system - make the zsh rebuild helper target $(hostname) instead of hardcoded hades - add nixpkgs follows for nixos-hardware, pi and comfy-ui (single nixpkgs) - add .gitignore and a nixfmt flake formatter; format all nix files - remove empty browser.nix/display-configuration.nix and rename local_ai.nix -> local-ai.nix - document the my.* toggles in the README
This commit is contained in:
20
modules/options.nix
Normal file
20
modules/options.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# Shared, machine-agnostic configuration surface. Hosts enable optional
|
||||
# feature modules by setting these booleans instead of editing import lists.
|
||||
options.my = {
|
||||
username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "anish";
|
||||
description = "Primary interactive user account.";
|
||||
};
|
||||
|
||||
gaming.enable = lib.mkEnableOption "Steam, Gamemode and gaming tooling";
|
||||
|
||||
ai.local.enable = lib.mkEnableOption "local AI services (Ollama, ComfyUI, Open WebUI)";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user