{ lib, ... }: with lib; { options.host.capabilities = { # Hardware capabilities hasCuda = mkOption { type = types.bool; default = false; description = "Whether the host has CUDA-capable GPU (for btop, OBS, etc.)"; }; hasBattery = mkOption { type = types.bool; default = false; description = "Whether the host has a battery (laptop)"; }; # Form factor formFactor = mkOption { type = types.enum [ "desktop" "laptop" ]; default = "desktop"; description = "Physical form factor of the host"; }; # UI behavior customizations volumeScrollStep = mkOption { type = types.int; default = 5; description = "Volume adjustment step percentage for scroll wheel"; }; # Service-specific features enableArrhist = mkOption { type = types.bool; default = false; description = "Enable Sonarr/Radarr monitoring widget (arrhist)"; }; # Network environment features hasEduroamAccess = mkOption { type = types.bool; default = false; description = "Whether this host can connect to eduroam (for SSH config)"; }; # Backup configuration backupRepository = mkOption { type = types.nullOr types.str; default = null; description = "Restic backup repository URL for this host"; example = "rest:http://10.69.12.52:8000/gunter.home.2rjus.net"; }; backupPassword = mkOption { type = types.nullOr types.str; default = null; description = "Restic backup password identifier for this host"; example = "gunter.home.2rjus.net"; }; }; }