From aeffcee52ff04a749fb8abf447c1fc517f1f2b0e Mon Sep 17 00:00:00 2001 From: Phillip Michelsen Date: Sun, 22 Feb 2026 08:50:34 +0800 Subject: [PATCH] Various changes to desktop configuration --- .gitignore | 1 + .../desktop/config/aichat/config.yaml.example | 8 + .../config/aichat/models-override.yaml | 1797 +++++++++++++++++ machines/desktop/config/fish/config.fish | 13 +- machines/desktop/config/mako/config | 26 + machines/desktop/config/nvim/lazy-lock.json | 39 + machines/desktop/config/sway/config | 11 + machines/desktop/config/sway/toggle-hdmi.sh | 17 + machines/desktop/config/tmux/tmux.conf | 61 + 9 files changed, 1972 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 machines/desktop/config/aichat/config.yaml.example create mode 100644 machines/desktop/config/aichat/models-override.yaml create mode 100644 machines/desktop/config/mako/config create mode 100644 machines/desktop/config/nvim/lazy-lock.json create mode 100755 machines/desktop/config/sway/toggle-hdmi.sh create mode 100644 machines/desktop/config/tmux/tmux.conf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2949689 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +machines/desktop/config/aichat/config.yaml diff --git a/machines/desktop/config/aichat/config.yaml.example b/machines/desktop/config/aichat/config.yaml.example new file mode 100644 index 0000000..a41bac1 --- /dev/null +++ b/machines/desktop/config/aichat/config.yaml.example @@ -0,0 +1,8 @@ +# see https://github.com/sigoden/aichat/blob/main/config.example.yaml + +model: openrouter:xiaomi/mimo-v2-flash +clients: +- type: openai-compatible + name: openrouter + api_base: https://openrouter.ai/api/v1 + api_key: diff --git a/machines/desktop/config/aichat/models-override.yaml b/machines/desktop/config/aichat/models-override.yaml new file mode 100644 index 0000000..9184510 --- /dev/null +++ b/machines/desktop/config/aichat/models-override.yaml @@ -0,0 +1,1797 @@ +version: 0.30.0 +list: +- provider: openai + models: + - name: gpt-5.2 + type: chat + max_input_tokens: 400000 + input_price: 1.75 + output_price: 14.0 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: gpt-5 + type: chat + max_input_tokens: 400000 + input_price: 1.25 + output_price: 10.0 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: gpt-5-mini + type: chat + max_input_tokens: 400000 + input_price: 0.25 + output_price: 2.0 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: gpt-5-nano + type: chat + max_input_tokens: 400000 + input_price: 0.05 + output_price: 0.4 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: gpt-4.1 + type: chat + max_input_tokens: 1047576 + input_price: 2.0 + output_price: 8.0 + max_output_tokens: 32768 + supports_vision: true + supports_function_calling: true + - name: gpt-4o + type: chat + max_input_tokens: 128000 + input_price: 2.5 + output_price: 10.0 + max_output_tokens: 16384 + supports_vision: true + supports_function_calling: true + - name: gpt-4-turbo + type: chat + max_input_tokens: 128000 + input_price: 10.0 + output_price: 30.0 + max_output_tokens: 4096 + supports_vision: true + supports_function_calling: true + - name: gpt-3.5-turbo + type: chat + max_input_tokens: 16385 + input_price: 0.5 + output_price: 1.5 + max_output_tokens: 4096 + supports_function_calling: true + - name: text-embedding-3-large + type: embedding + input_price: 0.13 + max_tokens_per_chunk: 8191 + default_chunk_size: 2000 + max_batch_size: 100 + - name: text-embedding-3-small + type: embedding + input_price: 0.02 + max_tokens_per_chunk: 8191 + default_chunk_size: 2000 + max_batch_size: 100 +- provider: gemini + models: + - name: gemini-2.5-flash + type: chat + max_input_tokens: 1048576 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 65536 + supports_vision: true + supports_function_calling: true + - name: gemini-2.5-pro + type: chat + max_input_tokens: 1048576 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 65536 + supports_vision: true + supports_function_calling: true + - name: gemini-2.5-flash-lite + type: chat + max_input_tokens: 1000000 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 64000 + supports_vision: true + supports_function_calling: true + - name: gemini-3-pro-preview + type: chat + max_input_tokens: 1048576 + supports_vision: true + supports_function_calling: true + - name: gemini-3-flash-preview + type: chat + max_input_tokens: 1048576 + supports_vision: true + supports_function_calling: true + - name: gemini-2.0-flash + type: chat + max_input_tokens: 1048576 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 8192 + supports_vision: true + supports_function_calling: true + - name: gemini-2.0-flash-lite + type: chat + max_input_tokens: 1048576 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 8192 + supports_vision: true + supports_function_calling: true + - name: gemma-3-27b-it + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 8192 + - name: text-embedding-004 + type: embedding + input_price: 0.0 + max_tokens_per_chunk: 2048 + default_chunk_size: 1500 + max_batch_size: 100 +- provider: claude + models: + - name: claude-sonnet-4-5-20250929 + type: chat + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-sonnet-4-5-20250929:thinking + type: chat + real_name: claude-sonnet-4-5-20250929 + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + patch: + body: + temperature: null + top_p: null + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-haiku-4-5-20251001 + type: chat + max_input_tokens: 200000 + input_price: 1.0 + output_price: 5.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-haiku-4-5-20251001:thinking + type: chat + real_name: claude-haiku-4-5-20251001 + max_input_tokens: 200000 + input_price: 1.0 + output_price: 5.0 + patch: + body: + temperature: null + top_p: null + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-opus-4-5-20251101 + type: chat + max_input_tokens: 200000 + input_price: 5.0 + output_price: 25.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-opus-4-5-20251101:thinking + type: chat + real_name: claude-opus-4-5-20251101 + max_input_tokens: 200000 + input_price: 5.0 + output_price: 25.0 + patch: + body: + temperature: null + top_p: null + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + supports_function_calling: true +- provider: mistral + models: + - name: mistral-large-latest + type: chat + input_price: 0.5 + output_price: 1.5 + max_output_tokens: 262144 + supports_vision: true + supports_function_calling: true + - name: mistral-medium-latest + type: chat + max_input_tokens: 131072 + input_price: 0.4 + output_price: 2.0 + supports_vision: true + supports_function_calling: true + - name: mistral-small-latest + type: chat + max_input_tokens: 32768 + input_price: 0.1 + output_price: 0.3 + supports_vision: true + supports_function_calling: true + - name: magistral-medium-latest + type: chat + max_input_tokens: 131072 + input_price: 2.0 + output_price: 5.0 + - name: magistral-small-latest + type: chat + max_input_tokens: 131072 + input_price: 0.5 + output_price: 1.5 + - name: devstral-medium-latest + type: chat + max_input_tokens: 262144 + input_price: 0.4 + output_price: 2.0 + supports_function_calling: true + - name: devstral-small-latest + type: chat + max_input_tokens: 262144 + input_price: 0.1 + output_price: 0.3 + supports_function_calling: true + - name: codestral-latest + type: chat + max_input_tokens: 262144 + input_price: 0.3 + output_price: 0.9 + supports_function_calling: true + - name: ministral-14b-latest + type: chat + max_input_tokens: 262144 + input_price: 0.2 + output_price: 0.2 + supports_function_calling: true + - name: mistral-embed + type: embedding + max_input_tokens: 8092 + input_price: 0.1 + max_tokens_per_chunk: 8092 + default_chunk_size: 2000 +- provider: ai21 + models: + - name: jamba-large + type: chat + max_input_tokens: 256000 + input_price: 2.0 + output_price: 8.0 + supports_function_calling: true + - name: jamba-mini + type: chat + max_input_tokens: 256000 + input_price: 0.2 + output_price: 0.4 + supports_function_calling: true +- provider: cohere + models: + - name: command-a-03-2025 + type: chat + max_input_tokens: 262144 + input_price: 2.5 + output_price: 10.0 + max_output_tokens: 8192 + supports_function_calling: true + - name: command-a-reasoning-08-2025 + type: chat + max_input_tokens: 262144 + input_price: 2.5 + output_price: 10.0 + max_output_tokens: 32768 + - name: command-a-vision-07-2025 + type: chat + max_input_tokens: 131072 + input_price: 2.5 + output_price: 10.0 + max_output_tokens: 8192 + supports_vision: true + - name: command-r7b-12-2024 + type: chat + max_input_tokens: 131072 + input_price: 0.0375 + output_price: 0.15 + max_output_tokens: 4096 + - name: embed-v4.0 + type: embedding + input_price: 0.12 + max_tokens_per_chunk: 2048 + default_chunk_size: 2000 + max_batch_size: 96 + - name: embed-english-v3.0 + type: embedding + input_price: 0.1 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 96 + - name: embed-multilingual-v3.0 + type: embedding + input_price: 0.1 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 96 + - name: rerank-v3.5 + type: reranker + max_input_tokens: 4096 + - name: rerank-english-v3.0 + type: reranker + max_input_tokens: 4096 + - name: rerank-multilingual-v3.0 + type: reranker + max_input_tokens: 4096 +- provider: xai + models: + - name: grok-4-1-fast-non-reasoning + type: chat + max_input_tokens: 2000000 + input_price: 0.2 + output_price: 0.5 + supports_function_calling: true + - name: grok-4-1-fast-reasoning + type: chat + max_input_tokens: 2000000 + input_price: 0.2 + output_price: 0.5 + supports_function_calling: true + - name: grok-code-fast-1 + type: chat + max_input_tokens: 256000 + input_price: 0.2 + output_price: 1.5 + supports_function_calling: true +- provider: perplexity + models: + - name: sonar-pro + type: chat + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + - name: sonar + type: chat + max_input_tokens: 128000 + input_price: 1.0 + output_price: 1.0 + - name: sonar-reasoning-pro + type: chat + max_input_tokens: 128000 + input_price: 2.0 + output_price: 8.0 + - name: sonar-deep-research + type: chat + max_input_tokens: 128000 + input_price: 2.0 + output_price: 8.0 +- provider: groq + models: + - name: openai/gpt-oss-120b + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + supports_function_calling: true + - name: openai/gpt-oss-20b + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + supports_function_calling: true + - name: meta-llama/llama-4-maverick-17b-128e-instruct + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + supports_vision: true + supports_function_calling: true + - name: meta-llama/llama-4-scout-17b-16e-instruct + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + supports_vision: true + supports_function_calling: true + - name: llama-3.3-70b-versatile + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + supports_function_calling: true + - name: moonshotai/kimi-k2-instruct-0905 + type: chat + max_input_tokens: 262144 + input_price: 0.0 + output_price: 0.0 + supports_function_calling: true + - name: qwen/qwen3-32b + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + - name: groq/compound + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + - name: groq/compound-mini + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 +- provider: vertexai + models: + - name: gemini-2.5-flash + type: chat + max_input_tokens: 1048576 + input_price: 0.3 + output_price: 2.5 + max_output_tokens: 65536 + supports_vision: true + supports_function_calling: true + - name: gemini-2.5-pro + type: chat + max_input_tokens: 1048576 + input_price: 1.25 + output_price: 10.0 + max_output_tokens: 65536 + supports_vision: true + supports_function_calling: true + - name: gemini-2.5-flash-lite + type: chat + max_input_tokens: 1048576 + input_price: 0.3 + output_price: 0.4 + max_output_tokens: 65536 + supports_vision: true + supports_function_calling: true + - name: gemini-3-pro-preview + type: chat + max_input_tokens: 1048576 + supports_vision: true + supports_function_calling: true + - name: gemini-3-flash-preview + type: chat + max_input_tokens: 1048576 + supports_vision: true + supports_function_calling: true + - name: gemini-2.0-flash-001 + type: chat + max_input_tokens: 1048576 + input_price: 0.15 + output_price: 0.6 + max_output_tokens: 8192 + supports_vision: true + supports_function_calling: true + - name: gemini-2.0-flash-lite-001 + type: chat + max_input_tokens: 1048576 + input_price: 0.075 + output_price: 0.3 + max_output_tokens: 8192 + supports_vision: true + supports_function_calling: true + - name: claude-sonnet-4-5@20250929 + type: chat + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-sonnet-4-5@20250929:thinking + type: chat + real_name: claude-sonnet-4-5@20250929 + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + patch: + body: + temperature: null + top_p: null + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + - name: claude-haiku-4-5@20251001 + type: chat + max_input_tokens: 200000 + input_price: 1.0 + output_price: 5.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-haiku-4-5@20251001:thinking + type: chat + real_name: claude-haiku-4-5@20251001 + max_input_tokens: 200000 + input_price: 1.0 + output_price: 5.0 + patch: + body: + temperature: null + top_p: null + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + - name: claude-opus-4-5@20251101 + type: chat + max_input_tokens: 200000 + input_price: 5.0 + output_price: 25.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: claude-opus-4-5@20251101:thinking + type: chat + real_name: claude-opus-4-5@20251101 + max_input_tokens: 200000 + input_price: 5.0 + output_price: 25.0 + patch: + body: + temperature: null + top_p: null + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + - name: text-embedding-005 + type: embedding + max_input_tokens: 20000 + input_price: 0.025 + max_tokens_per_chunk: 2048 + default_chunk_size: 1500 + max_batch_size: 5 + - name: text-multilingual-embedding-002 + type: embedding + max_input_tokens: 20000 + input_price: 0.2 + max_tokens_per_chunk: 2048 + default_chunk_size: 1500 + max_batch_size: 5 +- provider: bedrock + models: + - name: us.anthropic.claude-sonnet-4-5-20250929-v1:0 + type: chat + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: us.anthropic.claude-sonnet-4-5-20250929-v1:0:thinking + type: chat + real_name: us.anthropic.claude-sonnet-4-5-20250929-v1:0 + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + patch: + body: + inferenceConfig: + temperature: null + topP: null + additionalModelRequestFields: + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + - name: us.anthropic.claude-haiku-4-5-20251001-v1:0 + type: chat + max_input_tokens: 200000 + input_price: 1.0 + output_price: 5.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: us.anthropic.claude-haiku-4-5-20251001-v1:0:thinking + type: chat + real_name: us.anthropic.claude-haiku-4-5-20251001-v1:0 + max_input_tokens: 200000 + input_price: 1.0 + output_price: 5.0 + patch: + body: + inferenceConfig: + temperature: null + topP: null + additionalModelRequestFields: + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + - name: us.anthropic.claude-opus-4-5-20251101-v1:0 + type: chat + max_input_tokens: 200000 + input_price: 5.0 + output_price: 25.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: us.anthropic.claude-opus-4-5-20251101-v1:0:thinking + type: chat + real_name: us.anthropic.claude-opus-4-5-20251101-v1:0 + max_input_tokens: 200000 + input_price: 5.0 + output_price: 25.0 + patch: + body: + inferenceConfig: + temperature: null + topP: null + additionalModelRequestFields: + thinking: + type: enabled + budget_tokens: 16000 + max_output_tokens: 24000 + require_max_tokens: true + supports_vision: true + - name: us.meta.llama4-maverick-17b-instruct-v1:0 + type: chat + max_input_tokens: 131072 + input_price: 0.24 + output_price: 0.97 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: us.meta.llama4-scout-17b-instruct-v1:0 + type: chat + max_input_tokens: 131072 + input_price: 0.17 + output_price: 0.66 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: us.meta.llama3-3-70b-instruct-v1:0 + type: chat + max_input_tokens: 131072 + input_price: 0.72 + output_price: 0.72 + max_output_tokens: 8192 + require_max_tokens: true + supports_function_calling: true + - name: us.amazon.nova-premier-v1:0 + type: chat + max_input_tokens: 300000 + input_price: 2.5 + output_price: 12.5 + max_output_tokens: 5120 + - name: us.amazon.nova-pro-v1:0 + type: chat + max_input_tokens: 300000 + input_price: 0.8 + output_price: 3.2 + max_output_tokens: 5120 + supports_vision: true + - name: us.amazon.nova-lite-v1:0 + type: chat + max_input_tokens: 300000 + input_price: 0.06 + output_price: 0.24 + max_output_tokens: 5120 + supports_vision: true + - name: us.amazon.nova-micro-v1:0 + type: chat + max_input_tokens: 128000 + input_price: 0.035 + output_price: 0.14 + max_output_tokens: 5120 + - name: cohere.embed-english-v3 + type: embedding + input_price: 0.1 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 96 + - name: cohere.embed-multilingual-v3 + type: embedding + input_price: 0.1 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 96 + - name: us.deepseek.r1-v1:0 + type: chat + max_input_tokens: 128000 + input_price: 1.35 + output_price: 5.4 +- provider: cloudflare + models: + - name: '@cf/meta/llama-4-scout-17b-16e-instruct' + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 2048 + require_max_tokens: true + - name: '@cf/meta/llama-3.3-70b-instruct-fp8-fast' + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 2048 + require_max_tokens: true + - name: '@cf/qwen/qwen3-30b-a3b-fp8' + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 2048 + require_max_tokens: true + - name: '@cf/qwen/qwen2.5-coder-32b-instruct' + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 2048 + require_max_tokens: true + - name: '@cf/google/gemma-3-12b-it' + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 2048 + require_max_tokens: true + - name: '@cf/mistralai/mistral-small-3.1-24b-instruct' + type: chat + max_input_tokens: 131072 + input_price: 0.0 + output_price: 0.0 + max_output_tokens: 2048 + require_max_tokens: true + - name: '@cf/baai/bge-large-en-v1.5' + type: embedding + input_price: 0.0 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 100 +- provider: ernie + models: + - name: ernie-4.5-turbo-128k + type: chat + max_input_tokens: 131072 + input_price: 0.112 + output_price: 0.448 + - name: ernie-4.5-turbo-vl-32k + type: chat + max_input_tokens: 32768 + input_price: 0.42 + output_price: 1.26 + supports_vision: true + - name: ernie-5.0-thinking-preview + type: chat + max_input_tokens: 131072 + input_price: 1.4 + output_price: 5.6 + - name: ernie-x1.1-preview + type: chat + max_input_tokens: 65536 + input_price: 0.14 + output_price: 0.56 + - name: bge-large-zh + type: embedding + input_price: 0.07 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 16 + - name: bge-large-en + type: embedding + input_price: 0.07 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 16 + - name: bce-reranker-base + type: reranker + max_input_tokens: 1024 + input_price: 0.07 +- provider: qianwen + models: + - name: qwen3-max + type: chat + max_input_tokens: 262144 + supports_function_calling: true + - name: qwen-plus + type: chat + max_input_tokens: 131072 + supports_function_calling: true + - name: qwen-flash + type: chat + max_input_tokens: 1000000 + supports_function_calling: true + - name: qwen3-vl-plus + type: chat + max_input_tokens: 262144 + supports_vision: true + - name: qwen3-vl-flash + type: chat + max_input_tokens: 262144 + supports_vision: true + - name: qwen-coder-plus + type: chat + max_input_tokens: 1000000 + - name: qwen-coder-flash + type: chat + max_input_tokens: 1000000 + - name: qwen3-next-80b-a3b-instruct + type: chat + max_input_tokens: 131072 + input_price: 0.14 + output_price: 0.56 + supports_function_calling: true + - name: qwen3-next-80b-a3b-thinking + type: chat + max_input_tokens: 131072 + input_price: 0.14 + output_price: 1.4 + - name: qwen3-235b-a22b-instruct-2507 + type: chat + max_input_tokens: 131072 + input_price: 0.28 + output_price: 1.12 + supports_function_calling: true + - name: qwen3-235b-a22b-thinking-2507 + type: chat + max_input_tokens: 131072 + input_price: 0.28 + output_price: 2.8 + - name: qwen3-30b-a3b-instruct-2507 + type: chat + max_input_tokens: 131072 + input_price: 0.105 + output_price: 0.42 + supports_function_calling: true + - name: qwen3-30b-a3b-thinking-2507 + type: chat + max_input_tokens: 131072 + input_price: 0.105 + output_price: 1.05 + - name: qwen3-vl-32b-instruct + type: chat + max_input_tokens: 131072 + input_price: 0.28 + output_price: 1.12 + supports_vision: true + - name: qwen3-vl-8b-instruct + type: chat + max_input_tokens: 131072 + input_price: 0.07 + output_price: 0.28 + supports_vision: true + - name: qwen3-coder-480b-a35b-instruct + type: chat + max_input_tokens: 262144 + input_price: 1.26 + output_price: 5.04 + - name: qwen3-coder-30b-a3b-instruct + type: chat + max_input_tokens: 262144 + input_price: 0.315 + output_price: 1.26 + - name: deepseek-v3.2-exp + type: chat + max_input_tokens: 131072 + input_price: 0.28 + output_price: 0.42 + - name: text-embedding-v4 + type: embedding + input_price: 0.1 + max_tokens_per_chunk: 8192 + default_chunk_size: 2000 + max_batch_size: 10 + - name: text-embedding-v3 + type: embedding + input_price: 0.1 + max_tokens_per_chunk: 8192 + default_chunk_size: 2000 + max_batch_size: 10 +- provider: hunyuan + models: + - name: hunyuan-2.0-instruct-20251111 + type: chat + max_input_tokens: 131072 + input_price: 0.112 + output_price: 0.28 + supports_function_calling: true + - name: hunyuan-2.0-thinking-20251109 + type: chat + max_input_tokens: 131072 + input_price: 0.14 + output_price: 0.56 + supports_function_calling: true + - name: hunyuan-vision-1.5-instruct + type: chat + max_input_tokens: 24576 + input_price: 0.42 + output_price: 1.26 + supports_vision: true + - name: hunyuan-embedding + type: embedding + input_price: 0.01 + max_tokens_per_chunk: 1024 + default_chunk_size: 1000 + max_batch_size: 100 +- provider: moonshot + models: + - name: kimi-k2.5 + type: chat + max_input_tokens: 262144 + input_price: 0.56 + output_price: 2.94 + supports_vision: true + supports_function_calling: true + - name: kimi-k2-turbo-preview + type: chat + max_input_tokens: 262144 + input_price: 1.12 + output_price: 8.12 + supports_vision: true + supports_function_calling: true + - name: kimi-k2-0905-preview + type: chat + max_input_tokens: 262144 + input_price: 0.56 + output_price: 2.24 + supports_vision: true + supports_function_calling: true + - name: kimi-k2-thinking-turbo + type: chat + max_input_tokens: 262144 + input_price: 1.12 + output_price: 8.12 + supports_vision: true + - name: kimi-k2-thinking + type: chat + max_input_tokens: 262144 + input_price: 0.56 + output_price: 2.24 + supports_vision: true +- provider: deepseek + models: + - name: deepseek-chat + type: chat + max_input_tokens: 64000 + input_price: 0.56 + output_price: 1.68 + max_output_tokens: 8192 + supports_function_calling: true + - name: deepseek-reasoner + type: chat + max_input_tokens: 64000 + input_price: 0.56 + output_price: 1.68 + max_output_tokens: 32768 +- provider: zhipuai + models: + - name: glm-4.7 + type: chat + max_input_tokens: 202752 + input_price: 0.56 + output_price: 2.24 + supports_function_calling: true + - name: glm-4.7:instruct + type: chat + real_name: glm-4.7 + max_input_tokens: 202752 + input_price: 0.56 + output_price: 2.24 + patch: + body: + thinking: + type: disabled + supports_function_calling: true + - name: glm-4.7-flash + type: chat + max_input_tokens: 202752 + input_price: 0.0 + output_price: 0.0 + supports_function_calling: true + - name: glm-4.6v + type: chat + max_input_tokens: 65536 + input_price: 0.28 + output_price: 0.84 + supports_vision: true + - name: glm-4.6v-flash + type: chat + max_input_tokens: 65536 + input_price: 0.0 + output_price: 0.0 + supports_vision: true + - name: embedding-3 + type: embedding + max_input_tokens: 8192 + input_price: 0.07 + max_tokens_per_chunk: 8192 + default_chunk_size: 2000 + - name: rerank + type: reranker + max_input_tokens: 4096 + input_price: 0.112 +- provider: minimax + models: + - name: minimax-m2.1 + type: chat + max_input_tokens: 204800 + input_price: 0.294 + output_price: 1.176 + supports_function_calling: true + - name: minimax-m2.1-lightning + type: chat + max_input_tokens: 204800 + input_price: 0.294 + output_price: 2.352 + supports_function_calling: true +- provider: openrouter + models: + - name: openai/gpt-5.2 + type: chat + max_input_tokens: 400000 + input_price: 1.75 + output_price: 14.0 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: openai/gpt-5 + type: chat + max_input_tokens: 400000 + input_price: 1.25 + output_price: 10.0 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: openai/gpt-5-mini + type: chat + max_input_tokens: 400000 + input_price: 0.25 + output_price: 2.0 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: openai/gpt-5-nano + type: chat + max_input_tokens: 400000 + input_price: 0.05 + output_price: 0.4 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: openai/gpt-4.1 + type: chat + max_input_tokens: 1047576 + input_price: 2.0 + output_price: 8.0 + max_output_tokens: 32768 + supports_vision: true + supports_function_calling: true + - name: openai/gpt-4o + type: chat + max_input_tokens: 128000 + input_price: 2.5 + output_price: 10.0 + supports_vision: true + supports_function_calling: true + - name: openai/gpt-oss-120b + type: chat + max_input_tokens: 131072 + input_price: 0.09 + output_price: 0.45 + supports_function_calling: true + - name: openai/gpt-oss-20b + type: chat + max_input_tokens: 131072 + input_price: 0.04 + output_price: 0.16 + supports_function_calling: true + - name: google/gemini-2.5-flash + type: chat + max_input_tokens: 1048576 + input_price: 0.3 + output_price: 2.5 + supports_vision: true + supports_function_calling: true + - name: google/gemini-2.5-pro + type: chat + max_input_tokens: 1048576 + input_price: 1.25 + output_price: 10.0 + supports_vision: true + supports_function_calling: true + - name: google/gemini-2.5-flash-lite + type: chat + max_input_tokens: 1048576 + input_price: 0.3 + output_price: 0.4 + supports_vision: true + - name: google/gemini-2.0-flash-001 + type: chat + max_input_tokens: 1000000 + input_price: 0.15 + output_price: 0.6 + supports_vision: true + supports_function_calling: true + - name: google/gemini-2.0-flash-lite-001 + type: chat + max_input_tokens: 1048576 + input_price: 0.075 + output_price: 0.3 + supports_vision: true + supports_function_calling: true + - name: google/gemma-3-27b-it + type: chat + max_input_tokens: 131072 + input_price: 0.1 + output_price: 0.2 + - name: anthropic/claude-sonnet-4.5 + type: chat + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: anthropic/claude-haiku-4.5 + type: chat + max_input_tokens: 200000 + input_price: 1.0 + output_price: 5.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: anthropic/claude-opus-4.5 + type: chat + max_input_tokens: 200000 + input_price: 5.0 + output_price: 25.0 + max_output_tokens: 8192 + require_max_tokens: true + supports_vision: true + supports_function_calling: true + - name: meta-llama/llama-4-maverick + type: chat + max_input_tokens: 1048576 + input_price: 0.18 + output_price: 0.6 + supports_vision: true + supports_function_calling: true + - name: meta-llama/llama-4-scout + type: chat + max_input_tokens: 327680 + input_price: 0.08 + output_price: 0.3 + supports_vision: true + supports_function_calling: true + - name: meta-llama/llama-3.3-70b-instruct + type: chat + max_input_tokens: 131072 + input_price: 0.12 + output_price: 0.3 + - name: mistralai/mistral-large-2512 + type: chat + max_input_tokens: 262144 + input_price: 0.5 + output_price: 1.5 + supports_function_calling: true + - name: mistralai/mistral-medium-3.1 + type: chat + max_input_tokens: 131072 + input_price: 0.4 + output_price: 2.0 + supports_vision: true + supports_function_calling: true + - name: mistralai/mistral-small-3.2-24b-instruct + type: chat + max_input_tokens: 131072 + input_price: 0.1 + output_price: 0.3 + supports_vision: true + - name: mistralai/devstral-2512 + type: chat + max_input_tokens: 262144 + input_price: 0.5 + output_price: 0.22 + supports_function_calling: true + - name: mistralai/devstral-small + type: chat + max_input_tokens: 131072 + input_price: 0.07 + output_price: 0.28 + supports_function_calling: true + - name: mistralai/codestral-2508 + type: chat + max_input_tokens: 256000 + input_price: 0.3 + output_price: 0.9 + supports_function_calling: true + - name: mistralai/ministral-14b-2512 + type: chat + max_input_tokens: 262144 + input_price: 0.2 + output_price: 0.2 + supports_function_calling: true + - name: ai21/jamba-large-1.7 + type: chat + max_input_tokens: 256000 + input_price: 2.0 + output_price: 8.0 + supports_function_calling: true + - name: ai21/jamba-mini-1.7 + type: chat + max_input_tokens: 256000 + input_price: 0.2 + output_price: 0.4 + supports_function_calling: true + - name: cohere/command-a + type: chat + max_input_tokens: 256000 + input_price: 2.5 + output_price: 10.0 + supports_function_calling: true + - name: cohere/command-r7b-12-2024 + type: chat + max_input_tokens: 128000 + input_price: 0.0375 + output_price: 0.15 + max_output_tokens: 4096 + - name: deepseek/deepseek-v3.2 + type: chat + max_input_tokens: 163840 + input_price: 0.25 + output_price: 0.38 + - name: qwen/qwen3-max + type: chat + max_input_tokens: 262144 + input_price: 1.2 + output_price: 6.0 + supports_function_calling: true + - name: qwen/qwen-plus + type: chat + max_input_tokens: 131072 + input_price: 0.4 + output_price: 1.2 + max_output_tokens: 8192 + supports_function_calling: true + - name: qwen/qwen3-next-80b-a3b-instruct + type: chat + max_input_tokens: 262144 + input_price: 0.1 + output_price: 0.8 + supports_function_calling: true + - name: qwen/qwen3-next-80b-a3b-thinking + type: chat + max_input_tokens: 262144 + input_price: 0.1 + output_price: 0.8 + - name: qwen/qwen5-235b-a22b-2507 + type: chat + max_input_tokens: 262144 + input_price: 0.12 + output_price: 0.59 + supports_function_calling: true + - name: qwen/qwen3-235b-a22b-thinking-2507 + type: chat + max_input_tokens: 262144 + input_price: 0.118 + output_price: 0.118 + - name: qwen/qwen3-30b-a3b-instruct-2507 + type: chat + max_input_tokens: 131072 + input_price: 0.2 + output_price: 0.8 + - name: qwen/qwen3-30b-a3b-thinking-2507 + type: chat + max_input_tokens: 262144 + input_price: 0.071 + output_price: 0.285 + - name: qwen/qwen3-vl-32b-instruct + type: chat + max_input_tokens: 262144 + input_price: 0.35 + output_price: 1.1 + supports_vision: true + - name: qwen/qwen3-vl-8b-instruct + type: chat + max_input_tokens: 262144 + input_price: 0.08 + output_price: 0.5 + supports_vision: true + - name: qwen/qwen3-coder-plus + type: chat + max_input_tokens: 128000 + input_price: 1.0 + output_price: 5.0 + supports_function_calling: true + - name: qwen/qwen3-coder-flash + type: chat + max_input_tokens: 128000 + input_price: 0.3 + output_price: 1.5 + supports_function_calling: true + - name: qwen/qwen3-coder + type: chat + max_input_tokens: 262144 + input_price: 0.22 + output_price: 0.95 + supports_function_calling: true + - name: qwen/qwen3-coder-30b-a3b-instruct + type: chat + max_input_tokens: 262144 + input_price: 0.052 + output_price: 0.207 + supports_function_calling: true + - name: moonshotai/kimi-k2.5 + type: chat + max_input_tokens: 262144 + input_price: 0.57 + output_price: 2.85 + supports_vision: true + supports_function_calling: true + - name: moonshotai/kimi-k2-0905 + type: chat + max_input_tokens: 262144 + input_price: 0.296 + output_price: 1.185 + supports_vision: true + supports_function_calling: true + - name: moonshotai/kimi-k2-thinking + type: chat + max_input_tokens: 262144 + input_price: 0.45 + output_price: 2.35 + supports_function_calling: true + - name: moonshotai/kimi-dev-72b + type: chat + max_input_tokens: 131072 + input_price: 0.29 + output_price: 1.15 + supports_function_calling: true + - name: x-ai/grok-4.1-fast + type: chat + max_input_tokens: 2000000 + input_price: 0.2 + output_price: 0.5 + supports_function_calling: true + - name: x-ai/grok-code-fast-1 + type: chat + max_input_tokens: 256000 + input_price: 0.2 + output_price: 1.5 + supports_function_calling: true + - name: amazon/nova-premier-v1 + type: chat + max_input_tokens: 1000000 + input_price: 2.5 + output_price: 12.5 + supports_vision: true + - name: amazon/nova-pro-v1 + type: chat + max_input_tokens: 300000 + input_price: 0.8 + output_price: 3.2 + max_output_tokens: 5120 + supports_vision: true + - name: amazon/nova-lite-v1 + type: chat + max_input_tokens: 300000 + input_price: 0.06 + output_price: 0.24 + max_output_tokens: 5120 + supports_vision: true + - name: amazon/nova-micro-v1 + type: chat + max_input_tokens: 128000 + input_price: 0.035 + output_price: 0.14 + max_output_tokens: 5120 + - name: perplexity/sonar-pro + type: chat + max_input_tokens: 200000 + input_price: 3.0 + output_price: 15.0 + - name: perplexity/sonar + type: chat + max_input_tokens: 127072 + input_price: 1.0 + output_price: 1.0 + - name: perplexity/sonar-reasoning-pro + type: chat + max_input_tokens: 128000 + input_price: 2.0 + output_price: 8.0 + patch: + body: + include_reasoning: true + - name: perplexity/sonar-deep-research + type: chat + max_input_tokens: 200000 + input_price: 2.0 + output_price: 8.0 + patch: + body: + include_reasoning: true + - name: minimax/minimax-m2.1 + type: chat + max_input_tokens: 196608 + input_price: 0.12 + output_price: 0.48 + supports_function_calling: true + - name: z-ai/glm-4.7 + type: chat + max_input_tokens: 202752 + input_price: 0.16 + output_price: 0.8 + supports_function_calling: true + - name: z-ai/glm-4.7-flash + type: chat + max_input_tokens: 202752 + input_price: 0.07 + output_price: 0.4 + supports_function_calling: true + - name: z-ai/glm-4.6v + type: chat + max_input_tokens: 131072 + input_price: 0.3 + output_price: 0.9 + supports_vision: true +- provider: github + models: + - name: gpt-5 + type: chat + max_input_tokens: 400000 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: gpt-5-mini + type: chat + max_input_tokens: 400000 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: gpt-5-nano + type: chat + max_input_tokens: 400000 + max_output_tokens: 128000 + supports_vision: true + supports_function_calling: true + - name: gpt-4.1 + type: chat + max_input_tokens: 1047576 + max_output_tokens: 32768 + supports_vision: true + supports_function_calling: true + - name: gpt-4o + type: chat + max_input_tokens: 128000 + max_output_tokens: 16384 + supports_function_calling: true + - name: text-embedding-3-large + type: embedding + max_tokens_per_chunk: 8191 + default_chunk_size: 2000 + max_batch_size: 100 + - name: text-embedding-3-small + type: embedding + max_tokens_per_chunk: 8191 + default_chunk_size: 2000 + max_batch_size: 100 + - name: llama-4-maverick-17b-128e-instruct-fp8 + type: chat + max_input_tokens: 1048576 + supports_vision: true + - name: llama-4-scout-17b-16e-instruct + type: chat + max_input_tokens: 327680 + supports_vision: true + - name: llama-3.3-70b-instruct + type: chat + max_input_tokens: 131072 + - name: mistral-medium-2505 + type: chat + max_input_tokens: 131072 + supports_function_calling: true + - name: mistral-small-2503 + type: chat + max_input_tokens: 131072 + supports_function_calling: true + - name: codestral-2501 + type: chat + max_input_tokens: 256000 + supports_function_calling: true + - name: cohere-embed-v3-english + type: embedding + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 96 + - name: cohere-embed-v3-multilingual + type: embedding + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 96 + - name: deepseek-r1-0528 + type: chat + max_input_tokens: 163840 + - name: deepseek-v3-0324 + type: chat + max_input_tokens: 163840 + - name: mai-ds-r1 + type: chat + max_input_tokens: 163840 + - name: phi-4 + type: chat + max_input_tokens: 16384 + - name: phi-4-mini-instruct + type: chat + max_input_tokens: 131072 + - name: phi-4-reasoning + type: chat + max_input_tokens: 33792 + - name: phi-4-mini-reasoning + type: chat + max_input_tokens: 131072 + - name: grok-3 + type: chat + max_input_tokens: 131072 + - name: grok-3-mini + type: chat + max_input_tokens: 131072 +- provider: deepinfra + models: + - name: openai/gpt-oss-120b + type: chat + max_input_tokens: 131072 + input_price: 0.09 + output_price: 0.45 + supports_function_calling: true + - name: openai/gpt-oss-20b + type: chat + max_input_tokens: 131072 + input_price: 0.04 + output_price: 0.16 + supports_function_calling: true + - name: meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 + type: chat + max_input_tokens: 1048576 + input_price: 0.18 + output_price: 0.6 + supports_vision: true + - name: meta-llama/Llama-4-Scout-17B-16E-Instruct + type: chat + max_input_tokens: 327680 + input_price: 0.08 + output_price: 0.3 + supports_vision: true + - name: Qwen/Qwen3-Next-80B-A3B-Instruct + type: chat + max_input_tokens: 262144 + input_price: 0.14 + output_price: 1.4 + supports_function_calling: true + - name: Qwen/Qwen3-Next-80B-A3B-Thinking + type: chat + max_input_tokens: 262144 + input_price: 0.14 + output_price: 1.4 + - name: Qwen/Qwen3-235B-A22B-Instruct-2507 + type: chat + max_input_tokens: 131072 + input_price: 0.13 + output_price: 0.6 + supports_function_calling: true + - name: Qwen/Qwen3-235B-A22B-Thinking-2507 + type: chat + max_input_tokens: 131072 + input_price: 0.13 + output_price: 0.6 + - name: Qwen/Qwen3-Coder-480B-A35B-Instruct + type: chat + max_input_tokens: 131072 + input_price: 0.4 + output_price: 1.6 + supports_function_calling: true + - name: Qwen/Qwen3-Coder-30B-A3B-Instruct + type: chat + max_input_tokens: 262144 + input_price: 0.07 + output_price: 0.27 + supports_function_calling: true + - name: Qwen/Qwen3-30B-A3B + type: chat + max_input_tokens: 40960 + input_price: 0.1 + output_price: 0.3 + - name: Qwen/Qwen3-VL-8B-Instruct + type: chat + max_input_tokens: 262144 + input_price: 0.18 + output_price: 0.69 + supports_vision: true + - name: deepseek-ai/DeepSeek-V3.2 + type: chat + max_input_tokens: 163840 + input_price: 0.26 + output_price: 0.39 + supports_function_calling: true + - name: google/gemma-3-27b-it + type: chat + max_input_tokens: 131072 + input_price: 0.1 + output_price: 0.2 + - name: mistralai/Mistral-Small-3.2-24B-Instruct-2506 + type: chat + max_input_tokens: 32768 + input_price: 0.06 + output_price: 0.12 + - name: moonshotai/Kimi-K2.5 + type: chat + max_input_tokens: 262144 + input_price: 0.5 + output_price: 2.8 + supports_function_calling: true + - name: moonshotai/Kimi-K2-Instruct-0905 + type: chat + max_input_tokens: 262144 + input_price: 0.5 + output_price: 2.0 + supports_function_calling: true + - name: moonshotai/Kimi-K2-Thinking + type: chat + max_input_tokens: 262144 + input_price: 0.55 + output_price: 2.5 + supports_function_calling: true + - name: MiniMaxAI/MiniMax-M2.1 + type: chat + max_input_tokens: 262144 + input_price: 0.28 + output_price: 1.2 + supports_function_calling: true + - name: zai-org/GLM-4.7 + type: chat + max_input_tokens: 202752 + input_price: 0.43 + output_price: 1.75 + supports_function_calling: true + - name: zai-org/GLM-4.6V + type: chat + max_input_tokens: 131072 + input_price: 0.3 + output_price: 0.9 + supports_vision: true + - name: BAAI/bge-large-en-v1.5 + type: embedding + input_price: 0.01 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 100 + - name: BAAI/bge-m3 + type: embedding + input_price: 0.01 + max_tokens_per_chunk: 8192 + default_chunk_size: 2000 + max_batch_size: 100 + - name: intfloat/e5-large-v2 + type: embedding + input_price: 0.01 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 100 + - name: intfloat/multilingual-e5-large + type: embedding + input_price: 0.01 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 100 + - name: thenlper/gte-large + type: embedding + input_price: 0.01 + max_tokens_per_chunk: 512 + default_chunk_size: 1000 + max_batch_size: 100 +- provider: jina + models: + - name: jina-embeddings-v3 + type: embedding + input_price: 0.0 + max_tokens_per_chunk: 8192 + default_chunk_size: 2000 + max_batch_size: 100 + - name: jina-clip-v2 + type: embedding + input_price: 0.0 + max_tokens_per_chunk: 8192 + default_chunk_size: 1500 + max_batch_size: 100 + - name: jina-colbert-v2 + type: embedding + input_price: 0.0 + max_tokens_per_chunk: 8192 + default_chunk_size: 1500 + max_batch_size: 100 + - name: jina-reranker-v2-base-multilingual + type: reranker + max_input_tokens: 8192 + input_price: 0.0 + - name: jina-colbert-v2 + type: reranker + max_input_tokens: 8192 + input_price: 0.0 +- provider: voyageai + models: + - name: voyage-3-large + type: embedding + max_input_tokens: 120000 + input_price: 0.18 + max_tokens_per_chunk: 32000 + default_chunk_size: 2000 + max_batch_size: 128 + - name: voyage-3 + type: embedding + max_input_tokens: 320000 + input_price: 0.06 + max_tokens_per_chunk: 32000 + default_chunk_size: 2000 + max_batch_size: 128 + - name: voyage-3-lite + type: embedding + max_input_tokens: 1000000 + input_price: 0.02 + max_tokens_per_chunk: 32000 + default_chunk_size: 1000 + max_batch_size: 128 + - name: rerank-2 + type: reranker + max_input_tokens: 16000 + input_price: 0.05 + - name: rerank-2-lite + type: reranker + max_input_tokens: 8000 + input_price: 0.02 diff --git a/machines/desktop/config/fish/config.fish b/machines/desktop/config/fish/config.fish index e11dc16..a42813d 100644 --- a/machines/desktop/config/fish/config.fish +++ b/machines/desktop/config/fish/config.fish @@ -20,12 +20,23 @@ if status is-interactive abbr -a mv 'mv -i' abbr -a rm 'rm -i' + alias ai="aichat" + alias llm="aichat" + if type -q fzf fzf --fish | source end if type -q starship - starship init fish | source + if test "$TERM" != linux + starship init fish | source + end + end + + if test -z "$WAYLAND_DISPLAY"; and test (tty) = "/dev/tty1" + exec sway end end + + diff --git a/machines/desktop/config/mako/config b/machines/desktop/config/mako/config new file mode 100644 index 0000000..dbe1952 --- /dev/null +++ b/machines/desktop/config/mako/config @@ -0,0 +1,26 @@ +font=Hack Nerd Font 10 +background-color=#1c1c24 +text-color=#cdcdcd +border-color=#2f2f3d +progress-color=#7e98e8 + +border-size=2 +border-radius=0 +padding=8 +margin=6 + +default-timeout=5000 +ignore-timeout=0 + +[urgency=low] +background-color=#141415 +text-color=#c3c3d5 + +[urgency=normal] +background-color=#1c1c24 +text-color=#cdcdcd + +[urgency=high] +background-color=#1c1c24 +text-color=#d8647e +border-color=#d8647e diff --git a/machines/desktop/config/nvim/lazy-lock.json b/machines/desktop/config/nvim/lazy-lock.json new file mode 100644 index 0000000..b867757 --- /dev/null +++ b/machines/desktop/config/nvim/lazy-lock.json @@ -0,0 +1,39 @@ +{ + "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, + "alpha-nvim": { "branch": "main", "commit": "a9d8fb72213c8b461e791409e7feabb74eb6ce73" }, + "base16-black-metal-scheme": { "branch": "master", "commit": "c7a32bec8105a1ceddb9fcc90b713dabde5e7e5e" }, + "blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" }, + "copilot.vim": { "branch": "release", "commit": "a12fd5672110c8aa7e3c8419e28c96943ca179be" }, + "fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" }, + "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, + "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, + "fzf-lua": { "branch": "main", "commit": "5921997472574fca3880b62949eb8679dc6f5afc" }, + "gitsigns.nvim": { "branch": "main", "commit": "9f3c6dd7868bcc116e9c1c1929ce063b978fa519" }, + "grug-far.nvim": { "branch": "main", "commit": "275dbedc96e61a6b8d1dfb28ba51586ddd233dcf" }, + "kanagawa.nvim": { "branch": "master", "commit": "aef7f5cec0a40dbe7f3304214850c472e2264b10" }, + "koda.nvim": { "branch": "main", "commit": "25c52c710a5083cf6f3ac533d57fefecce7e2021" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lazygit.nvim": { "branch": "main", "commit": "a04ad0dbc725134edbee3a5eea29290976695357" }, + "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, + "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" }, + "nvim-lspconfig": { "branch": "master", "commit": "44acfe887d4056f704ccc4f17513ed41c9e2b2e6" }, + "nvim-surround": { "branch": "main", "commit": "1098d7b3c34adcfa7feb3289ee434529abd4afd1" }, + "nvim-treesitter": { "branch": "main", "commit": "4d9466677a5ceadef104eaa0fe08d60d91c4e9a7" }, + "nvim-web-devicons": { "branch": "master", "commit": "746ffbb17975ebd6c40142362eee1b0249969c5c" }, + "oil.nvim": { "branch": "master", "commit": "f55b25e493a7df76371cfadd0ded5004cb9cd48a" }, + "opencode.nvim": { "branch": "main", "commit": "d080eb4e4f03cfdcb3c5eacc88cc4e17bd8c1980" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "snipe.nvim": { "branch": "main", "commit": "d2d196c335919767803f905d573ce66340e33ee6" }, + "tabout.nvim": { "branch": "master", "commit": "9a3499480a8e53dcaa665e2836f287e3b7764009" }, + "targets.vim": { "branch": "master", "commit": "6325416da8f89992b005db3e4517aaef0242602e" }, + "typst-preview.nvim": { "branch": "master", "commit": "e123a7ab64e52d836e00dea9251e85b201f38966" }, + "vague.nvim": { "branch": "main", "commit": "c1ab4d4891ff3a27deba6a80222d895ac8ffb2e5" }, + "vesper.nvim": { "branch": "main", "commit": "1717b1ad657c94bec3fc2bdebb0c55452d9fe46d" }, + "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, + "vim-tmux-navigator": { "branch": "master", "commit": "e41c431a0c7b7388ae7ba341f01a0d217eb3a432" }, + "vimtex": { "branch": "master", "commit": "95b93a24740f7b89dd8331326b41bdd1337d79f6" }, + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } +} diff --git a/machines/desktop/config/sway/config b/machines/desktop/config/sway/config index 913b3e9..4d99436 100644 --- a/machines/desktop/config/sway/config +++ b/machines/desktop/config/sway/config @@ -49,9 +49,18 @@ input type:keyboard { xkb_layout "us" } +output HDMI-A-1 resolution 2560x1440 pos 0 0 +output HDMI-A-2 resolution 1920x1080 pos -1920 0 + +workspace 1 output HDMI-A-1 +workspace 4 output HDMI-A-2 + + workspace_auto_back_and_forth yes bindsym $mod+Tab workspace back_and_forth +bindsym $mod+Shift+m exec ~/.config/sway/toggle-hdmi.sh + ### Key bindings bindsym $mod+Return exec $term bindsym $mod+q kill @@ -112,3 +121,5 @@ bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ bindsym Print exec grim -g "$(slurp)" - | wl-copy bindsym $mod+Print exec grim - | wl-copy + +exec_always dbus-update-activation-environment --systemd WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway diff --git a/machines/desktop/config/sway/toggle-hdmi.sh b/machines/desktop/config/sway/toggle-hdmi.sh new file mode 100755 index 0000000..6926984 --- /dev/null +++ b/machines/desktop/config/sway/toggle-hdmi.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -eu + +OUTPUT="HDMI-A-2" + +active="$(swaymsg -t get_outputs -r \ + | jq -r --arg o "$OUTPUT" '.[] | select(.name==$o) | .active')" + +case "$active" in + true) swaymsg output "$OUTPUT" disable ;; + false) swaymsg output "$OUTPUT" enable ;; + *) + printf 'Output %s not found or jq parse error\n' "$OUTPUT" >&2 + exit 1 + ;; +esac + diff --git a/machines/desktop/config/tmux/tmux.conf b/machines/desktop/config/tmux/tmux.conf new file mode 100644 index 0000000..153c152 --- /dev/null +++ b/machines/desktop/config/tmux/tmux.conf @@ -0,0 +1,61 @@ +unbind C-b +set -g prefix C-a +bind C-a send-prefix + +bind -n M-h previous-window +bind -n M-l next-window + +unbind x +bind x kill-pane + +unbind & +bind & kill-window + +set -g default-terminal "tmux-256color" +set -as terminal-overrides ',*:Tc' + +set -g detach-on-destroy off +set -g renumber-windows on +set -g base-index 1 +setw -g pane-base-index 1 + +set -g status-position top +set -g status on + +set -g status-style "bg=default,fg=white" +set -g status-left "" +set -g status-right "" +set -g status-justify centre + +set -g window-status-format "#I: #W" +set -g window-status-current-format "#I: #W" + +set -g window-status-separator " " +set -g status-interval 5 + +set -g pane-border-style "fg=colour240" +set -g pane-active-border-style "fg=white" + +set -g mouse on +set -g history-limit 10000 +setw -g automatic-rename on + +# neovim tmux navigator +vim_pattern='(\S+/)?g?\.?(view|l?n?vim?x?|fzf)(diff)?(-wrapped)?' +is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ + | grep -iqE '^[^TXZ ]+ +${vim_pattern}$'" +bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' +bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' +bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' +bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' +tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' +if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ + "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" +if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ + "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" + +bind-key -T copy-mode-vi 'C-h' select-pane -L +bind-key -T copy-mode-vi 'C-j' select-pane -D +bind-key -T copy-mode-vi 'C-k' select-pane -U +bind-key -T copy-mode-vi 'C-l' select-pane -R +bind-key -T copy-mode-vi 'C-\' select-pane -l