Skip to content

Common

Source directory: modules/common/

ai-defaults.nix

modules/common/ai-defaults.nix

AI Provider Default Configuration Module Provides sensible defaults for AI provider configuration to eliminate duplication

  • Enable option: Default AI provider configuration

Options: enable, profile

Options declaration (Nix)
  options.aiDefaults = {
    enable = mkEnableOption "Default AI provider configuration";

    profile = mkOption {
      type = types.enum [ "workstation" "server" "laptop" ];
      default = "workstation";
      description = "AI provider profile for different host types";
    };
  }

base-user.nix

modules/common/base-user.nix

No option declarations; see source for implementation.

default.nix

modules/common/default.nix

No option declarations; see source for implementation.

features-impl.nix

modules/common/features-impl.nix

No option declarations; see source for implementation.

features.nix

modules/common/features.nix

  • Enable option: Enable development tools
  • Enable option: Python development
  • Enable option: Go development
  • Enable option: Node.js development
  • Enable option: Java development
  • Enable option: Lua development
  • Enable option: Nix development
  • Enable option: Shell development
  • Enable option: Cargo/Rust development
  • Enable option: GitHub Copilot CLI
  • Enable option: GitHub development
  • Enable option: DevShell development
  • Enable option: Pre-commit hooks and linting
  • Enable option: Enable virtualization
  • Enable option: Enable Docker
  • Enable option: Enable Podman
  • Enable option: Enable Incus containers
  • Enable option: Enable SPICE
  • Enable option: Enable libvirt
  • Enable option: Enable cloud tools
  • Enable option: Enable AWS tools
  • Enable option: Enable Azure tools
  • Enable option: Enable Google Cloud tools
  • Enable option: Enable Kubernetes tools
  • Enable option: Enable Terraform tools
  • Enable option: Enable security tools
  • Enable option: Enable 1Password
  • Enable option: Enable GnuPG
  • Enable option: Enable networking
  • Enable option: Enable AI tools
  • Enable option: Enable Google Antigravity CLI (agy) — replaces gemini-cli (EOL 2026-06-18)
  • Enable option: Enable unified AI provider support
  • Enable option: OpenAI provider
  • Enable option: Anthropic/Claude provider
  • Enable option: Google Gemini provider
  • Enable option: Enable LazyGit
  • Enable option: Enable Thunderbird
  • Enable option: Enable Obsidian
  • Enable option: Enable Office tools
  • Enable option: Enable Webcam tools
  • Enable option: Enable Printing
  • Enable option: Enable DroidCam
  • Enable option: Enable QuickShell desktop shell (runs alongside Waybar for testing)

Options: enable, python, go, nodejs, java, lua, nix, shell, cargo, copilot-cli, github, devshell, precommit, docker, podman, incus, spice, libvirt, aws, azure, google, k8s, terraform, onepassword, gnupg, antigravity-cli, lazygit, thunderbird, obsidian, office, webcam, print, droidcam, claude-desktop, defaultProvider, enableFallback, costOptimization, priority

Options declaration (Nix)
  options.features = {
    development = {
      enable = mkEnableOption "Enable development tools";

      # Granular enablement options
      python = mkEnableOption "Python development";
      go = mkEnableOption "Go development";
      nodejs = mkEnableOption "Node.js development";
      java = mkEnableOption "Java development";
      lua = mkEnableOption "Lua development";
      nix = mkEnableOption "Nix development";
      shell = mkEnableOption "Shell development";
      cargo = mkEnableOption "Cargo/Rust development";
      copilot-cli = mkEnableOption "GitHub Copilot CLI";
      github = mkEnableOption "GitHub development";
      devshell = mkEnableOption "DevShell development";
      precommit = mkEnableOption "Pre-commit hooks and linting";
    };

    virtualization = {
      enable = mkEnableOption "Enable virtualization";
      docker = mkEnableOption "Enable Docker";
      podman = mkEnableOption "Enable Podman";
      incus = mkEnableOption "Enable Incus containers";
      spice = mkEnableOption "Enable SPICE";
      libvirt = mkEnableOption "Enable libvirt";
    };

    cloud = {
      enable = mkEnableOption "Enable cloud tools";
      aws = mkEnableOption "Enable AWS tools";
      azure = mkEnableOption "Enable Azure tools";
      google = mkEnableOption "Enable Google Cloud tools";
      k8s = mkEnableOption "Enable Kubernetes tools";
      terraform = mkEnableOption "Enable Terraform tools";
    };

    security = {
      enable = mkEnableOption "Enable security tools";
      onepassword = mkEnableOption "Enable 1Password";
      gnupg = mkEnableOption "Enable GnuPG";
    };

    networking = {
      enable = mkEnableOption "Enable networking";
    };

    ai = {
      enable = mkEnableOption "Enable AI tools";
      antigravity-cli = mkEnableOption "Enable Google Antigravity CLI (agy) — replaces gemini-cli (EOL 2026-06-18)";
      claude-desktop = mkOption {
        type = types.bool;
        default = true;
        description = "Enable Claude Desktop GUI application";
      };

      # Enhanced AI provider support
      providers = {
        enable = mkEnableOption "Enable unified AI provider support";

        defaultProvider = mkOption {
          type = types.enum [ "openai" "anthropic" "gemini" ];
          default = "openai";
          description = "Default AI provider to use";
        };

        enableFallback = mkOption {
          type = types.bool;
          default = true;
          description = "Enable automatic fallback between providers";
        };

        costOptimization = mkOption {
          type = types.bool;
          default = false;
          description = "Enable cost-based provider selection";
        };

        openai = {
          enable = mkEnableOption "OpenAI provider";
          priority = mkOption {
            type = types.int;
            default = 1;
            description = "Provider priority (1 = highest)";
          };
        };

        anthropic = {
          enable = mkEnableOption "Anthropic/Claude provider";
          priority = mkOption {
# … truncated — see source link above

networking.nix

modules/common/networking.nix

Network Configuration Module Provides network profile management and stability enhancements

  • Enable option: Network stability enhancements to prevent connection changes
Options declaration (Nix)
  options.networking.profile = mkOption {
    type = types.enum [ "desktop" "server" "minimal" ];
    default = "desktop";
    description = "Network profile to use";
  }

plasma-packages.nix

modules/common/plasma-packages.nix

No option declarations; see source for implementation.