{ pkgs, namespace, ... }: { home = { username = "admin"; packages = with pkgs; [ heroic python3 python3Packages.requests python3Packages.mcp jq ] ++ (with pkgs.${namespace}; [ moondeck-buddy ]); }; ${namespace} = { sops.enable = true; }; sops = { age.keyFile = "/home/admin/.config/sops/age/keys.txt"; defaultSopsFile = "/etc/nixos/secrets/secrets.yaml"; validateSopsFiles = false; secrets = { "ssh-keys-public/jallen-nas" = { path = "/home/admin/.ssh/id_ed25519.pub"; mode = "0644"; }; "ssh-keys-private/jallen-nas" = { path = "/home/admin/.ssh/id_ed25519"; mode = "0600"; }; "ssh-keys-public/desktop-nixos" = { path = "/home/admin/.ssh/authorized_keys"; mode = "0600"; }; "ssh-keys-public/desktop-nixos-root" = { path = "/home/admin/.ssh/authorized_keys2"; mode = "0600"; }; "ssh-keys-public/desktop-windows" = { path = "/home/admin/.ssh/authorized_keys3"; mode = "0600"; }; "ssh-keys-public/macbook-macos" = { path = "/home/admin/.ssh/authorized_keys4"; mode = "0600"; }; }; }; programs = { bash = { shellAliases = { "llama-status" = "curl -s http://localhost:8127/health 2>/dev/null && echo 'LLaMA.cpp server is running' || echo 'LLaMA.cpp server is not responding'"; }; }; neovim = { enable = true; viAlias = true; vimAlias = true; defaultEditor = true; plugins = [ pkgs.vimPlugins.nvim-tree-lua { plugin = pkgs.vimPlugins.vim-startify; config = "let g:startify_change_to_vcs_root = 0"; } ]; }; steam-rom-manager = { enable = true; steamUsername = "mjallen18"; # Optional: override default paths if needed environmentVariables = { romsDirectory = "/home/admin/Emulation/roms"; steamDirectory = "/home/admin/.local/share/Steam"; }; emulators = { "Non-SRM Shortcuts" = { enable = true; parserType = "Non-SRM Shortcuts"; extraArgs = ""; }; }; }; opencode = { enable = true; enableMcpIntegration = true; settings = { provider = { nas = { npm = "@ai-sdk/openai-compatible"; name = "llama-server (local)"; options = { baseURL = "http://jallen-nas.local:8127/v1"; }; models = { Qwen3-Coder-Next-Q4_0 = { name = "Qwen3 Coder (local)"; modalities = { input = [ "image" "text" ]; output = [ "text" ]; }; limit = { context = 262144; output = 262144; }; }; # "GLM-4.7-Flash-REAP-23B-A3B-UD-Q3_K_XL": { # "name": "GLM 4.7 Flash (local)", # "modalities": { "input": ["image", "text"], "output": ["text"] }, # "limit": { # "context": 262144, # "output": 262144 # } # }; # "Nemotron-3-Nano-30B-A3B-IQ4_XS": { # "name": "Nemotron-3-Nano (local)", # "modalities": { "input": ["image", "text"], "output": ["text"] }, # "limit": { # "context": 262144, # "output": 262144 # } # }; }; }; }; }; }; mcp = { enable = true; servers = { nixos = { command = "nix"; args = [ "run" "github:utensils/mcp-nixos" "--" ]; }; hass-mcp = { command = "uvx"; args = [ "hass-mcp" ]; env = { HA_URL = "http://nuc-nixos.local:8123"; HA_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI1ZDM2MTliNWNjMGY0ZGI2OWQzOTQ4Mjk0ZDFmNjAxMCIsImlhdCI6MTc3MDc2MjA1NywiZXhwIjoyMDg2MTIyMDU3fQ.P52jeX8GQcdGdzpbU3NCWZMUjkJZHFnOeR8--jy9dF8"; }; }; mcp-server-code-runner = { command = "npm"; args = [ "-y" "mcp-server-code-runner@latest" ]; }; }; }; }; }