153 lines
3.7 KiB
Nix
153 lines
3.7 KiB
Nix
{
|
|
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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|