{ config, lib, pkgs, ... }: with lib; let cfg = config.features.desktop.coding; in { options.features.desktop.coding.enable = mkEnableOption "install coding related stuff"; config = mkIf cfg.enable { home.packages = with pkgs; [ nur.repos.charmbracelet.crush bruno filezilla insomnia opencode ]; programs.zed-editor = { enable = true; userSettings = { agent_servers = { your_agent = { command = "path_to_executable"; args = []; env = {}; }; }; auto_update = false; buffer_font_family = "FiraCode Nerd Font"; buffer_font_size = 16; context_servers = { browsermcp = { source = "custom"; enabled = true; command = "npx"; args = ["@browsermcp/mcp@latest"]; }; some-context-server = { source = "custom"; command = "some-command"; args = ["arg-1" "arg-2"]; env = {}; settings = {}; }; }; features = { copilot = false; edit_prediction_provider = "zed"; inline_prediction_provider = "zed"; }; format_on_save = "on"; language_models = { openai_compatible = { AZ = { api_url = "https://llm.az-gruppe.com"; available_models = [ { name = "claude-4-5-sonnet"; display_name = null; max_tokens = 200000; max_output_tokens = 32000; max_completion_tokens = 200000; capabilities = { tools = true; images = false; parallel_tool_calls = false; prompt_cache_key = false; }; } ]; }; }; anthropic = { api_url = "https://api.anthropic.com"; }; ollama = { api_url = "http://localhost:11434"; }; openai = { api_url = "https://api.openai.com/v1"; }; }; languages = { Nix = { formatter = { external = { arguments = ["-q" "-"]; command = "alejandra"; }; }; language_servers = ["nixd"]; }; Python = { formatter = { external = { arguments = ["-"]; command = "black"; }; }; language_servers = ["pyrefly"]; }; }; load_direnv = "shell_hook"; lsp = { pyrefly = { command = { args = ["--lsp"]; env = {}; path = "pyrefly"; }; settings = {}; }; rust_analyzer = { binary = { path_lookup = true; }; }; }; show_edit_predictions = true; ssh_connections = [ { args = ["-i" "~/.ssh/sascha.koenig"]; host = "152.53.186.119"; port = 2022; nickname = "AZ-CLD-1"; "projects" = [ { paths = ["/home/sascha.koenig/AZ-NIX"]; } ]; } ]; telemetry = { metrics = false; }; theme = "Dracula"; ui_font_size = 16; vim_mode = true; agent = { default_model = { model = "Claude 3.7 Sonnet"; provider = "anthropic"; }; }; }; }; }; }