Compare commits

..

14 Commits

Author SHA1 Message Date
Jason Swank
7877c99dd9 git: ignore local claude config 2026-01-29 07:48:03 -05:00
Jason Swank
5367cf1492 zsh: ctrl-x edits command line 2026-01-29 07:47:31 -05:00
Jason Swank
1204bace2c update direnv config 2026-01-23 13:20:05 -05:00
Jason Swank
e7549d483b aichat config 2026-01-14 13:14:53 -05:00
Jason Swank
fd47330e6d vim: add ctrl-b to create backticks 2026-01-13 13:05:08 -05:00
Jason Swank
9ec3e1124b zsh: add aws-get-bedrock-profile 2026-01-13 13:00:39 -05:00
Jason Swank
c36d1fa1f8 add aws-sso-login 2026-01-12 23:29:03 -05:00
Jason Swank
a7804cc129 zk: update daily template 2026-01-12 12:25:38 -05:00
Jason Swank
983a7abab8 ssh: update local net detection to use nc 2026-01-12 12:25:18 -05:00
aef5a71ea1 vim: colorscheme & minor tweaks (#1) 2026-01-12 17:24:02 +00:00
Jason Swank
ade5ab61ba aws-get-secret: add comments 2026-01-10 22:44:07 +00:00
Jason Swank
1078045906 bat: change default theme to Nord 2026-01-10 16:34:42 +00:00
Jason Swank
5136fe2604 vim: better glyph for linewrapping 2026-01-10 09:45:33 -05:00
Jason Swank
9c0ad024a3 improve line wrapping 2026-01-10 14:27:22 +00:00
19 changed files with 938 additions and 639 deletions

View File

@@ -4,13 +4,15 @@
# environment variables for aichat can be set at ~/.config/aichat/.env
#model: claude:claude-sonnet-4-5-20250929
model: gemini:gemini-3-flash-preview
#model: gemini:gemini-3-flash-preview
keybindings: vi
repl_prelude: role:cloudops
clients:
- type: bedrock
name: aws
- type: claude
- type: gemini
- type: openai
- type: openai-compatible
name: moonshot
api_base: https://api.moonshot.ai/v1
#- type: openai
#- type: openai-compatible
# name: moonshot
# api_base: https://api.moonshot.ai/v1

View File

@@ -2,19 +2,11 @@ version: 0.30.0
list:
- provider: openai
models:
- name: gpt-5.1
- name: gpt-5.2
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.1-chat-latest
type: chat
max_input_tokens: 400000
input_price: 1.25
output_price: 10.0
input_price: 1.75
output_price: 14.0
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
@@ -26,14 +18,6 @@ list:
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
- name: gpt-5-chat-latest
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
@@ -58,22 +42,6 @@ list:
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: gpt-4.1-mini
type: chat
max_input_tokens: 1047576
input_price: 0.4
output_price: 1.6
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: gpt-4.1-nano
type: chat
max_input_tokens: 1047576
input_price: 0.1
output_price: 0.4
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: gpt-4o
type: chat
max_input_tokens: 128000
@@ -82,98 +50,6 @@ list:
max_output_tokens: 16384
supports_vision: true
supports_function_calling: true
- name: gpt-4o-mini
type: chat
max_input_tokens: 128000
input_price: 0.15
output_price: 0.6
max_output_tokens: 16384
supports_vision: true
supports_function_calling: true
- name: o4-mini
type: chat
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o4-mini-high
type: chat
real_name: o4-mini
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3
type: chat
max_input_tokens: 200000
input_price: 2.0
output_price: 8.0
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3-high
type: chat
real_name: o3
max_input_tokens: 200000
input_price: 2.0
output_price: 8.0
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3-mini
type: chat
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3-mini-high
type: chat
real_name: o3-mini
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: gpt-4-turbo
type: chat
max_input_tokens: 128000
@@ -203,22 +79,6 @@ list:
max_batch_size: 100
- provider: gemini
models:
- name: gemini-3-flash-preview
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-3-pro-preview
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
type: chat
max_input_tokens: 1048576
@@ -243,6 +103,16 @@ list:
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
@@ -439,6 +309,13 @@ list:
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
@@ -455,32 +332,38 @@ list:
supports_function_calling: true
- name: magistral-medium-latest
type: chat
max_input_tokens: 40960
max_input_tokens: 131072
input_price: 2.0
output_price: 5.0
- name: magistral-small-latest
type: chat
max_input_tokens: 40960
max_input_tokens: 131072
input_price: 0.5
output_price: 1.5
- name: devstral-medium-latest
type: chat
max_input_tokens: 256000
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: 256000
max_input_tokens: 262144
input_price: 0.1
output_price: 0.3
supports_function_calling: true
- name: codestral-latest
type: chat
max_input_tokens: 256000
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
@@ -558,42 +441,24 @@ list:
max_input_tokens: 4096
- provider: xai
models:
- name: grok-4
type: chat
max_input_tokens: 256000
input_price: 3.0
output_price: 15.0
supports_function_calling: true
- name: grok-4-fast-non-reasoning
- 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-fast-reasoning
- 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
- name: grok-code-fast-1
type: chat
max_input_tokens: 256000
input_price: 0.2
output_price: 1.5
supports_function_calling: true
- name: grok-3
type: chat
max_input_tokens: 131072
input_price: 3.0
output_price: 15.0
supports_function_calling: true
- name: grok-3-mini
type: chat
max_input_tokens: 131072
input_price: 0.3
output_price: 0.5
supports_function_calling: true
- provider: perplexity
models:
- name: sonar-pro
@@ -611,11 +476,6 @@ list:
max_input_tokens: 128000
input_price: 2.0
output_price: 8.0
- name: sonar-reasoning
type: chat
max_input_tokens: 128000
input_price: 1.0
output_price: 5.0
- name: sonar-deep-research
type: chat
max_input_tokens: 128000
@@ -702,6 +562,16 @@ list:
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
@@ -877,18 +747,6 @@ list:
require_max_tokens: true
supports_vision: true
supports_function_calling: true
- name: mistral-small-2503
type: chat
max_input_tokens: 32000
input_price: 0.1
output_price: 0.3
supports_function_calling: true
- name: codestral-2501
type: chat
max_input_tokens: 256000
input_price: 0.3
output_price: 0.9
supports_function_calling: true
- name: text-embedding-005
type: embedding
max_input_tokens: 20000
@@ -1336,32 +1194,23 @@ list:
max_batch_size: 10
- provider: hunyuan
models:
- name: hunyuan-turbos-latest
- name: hunyuan-2.0-instruct-20251111
type: chat
max_input_tokens: 28000
max_input_tokens: 131072
input_price: 0.112
output_price: 0.28
supports_function_calling: true
- name: hunyuan-t1-latest
- name: hunyuan-2.0-thinking-20251109
type: chat
max_input_tokens: 28000
max_input_tokens: 131072
input_price: 0.14
output_price: 0.56
- name: hunyuan-lite
type: chat
max_input_tokens: 250000
input_price: 0.0
output_price: 0.0
supports_function_calling: true
- name: hunyuan-turbos-vision
- name: hunyuan-vision-1.5-instruct
type: chat
max_input_tokens: 6144
max_input_tokens: 24576
input_price: 0.42
output_price: 0.84
supports_vision: true
- name: hunyuan-t1-vision
type: chat
max_input_tokens: 24000
output_price: 1.26
supports_vision: true
- name: hunyuan-embedding
type: embedding
@@ -1414,65 +1263,29 @@ list:
max_output_tokens: 32768
- provider: zhipuai
models:
- name: glm-4.6
- name: glm-4.7
type: chat
max_input_tokens: 202752
input_price: 0.28
output_price: 1.12
supports_function_calling: true
- name: glm-4.5
type: chat
max_input_tokens: 131072
input_price: 0.28
output_price: 1.12
- name: glm-4.5-x
type: chat
max_input_tokens: 131072
input_price: 1.12
output_price: 4.48
supports_function_calling: true
- name: glm-4.5-air
type: chat
max_input_tokens: 131072
input_price: 0.084
output_price: 0.56
- name: glm-4.5-airx
type: chat
max_input_tokens: 131072
input_price: 0.56
output_price: 2.24
supports_function_calling: true
- name: glm-4.5-flash
- name: glm-4.7:instruct
type: chat
max_input_tokens: 131072
input_price: 0.0
output_price: 0.0
- name: glm-4.5v
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.6v
type: chat
max_input_tokens: 65536
input_price: 0.56
output_price: 1.68
input_price: 0.28
output_price: 0.84
supports_vision: true
- name: glm-z1-air
type: chat
max_input_tokens: 131072
input_price: 0.07
output_price: 0.07
- name: glm-z1-airx
type: chat
max_input_tokens: 131072
input_price: 0.7
output_price: 0.7
- name: glm-z1-flashx
type: chat
max_input_tokens: 131072
input_price: 0.014
output_price: 0.014
- name: glm-z1-flash
type: chat
max_input_tokens: 131072
input_price: 0.0
output_price: 0.0
- name: embedding-3
type: embedding
max_input_tokens: 8192
@@ -1485,27 +1298,25 @@ list:
input_price: 0.112
- provider: minimax
models:
- name: minimax-m2
- 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.1
- name: openai/gpt-5.2
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.1-chat
type: chat
max_input_tokens: 400000
input_price: 1.25
output_price: 10.0
input_price: 1.75
output_price: 14.0
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
@@ -1517,14 +1328,6 @@ list:
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
- name: openai/gpt-5-chat
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
@@ -1549,22 +1352,6 @@ list:
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: openai/gpt-4.1-mini
type: chat
max_input_tokens: 1047576
input_price: 0.4
output_price: 1.6
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: openai/gpt-4.1-nano
type: chat
max_input_tokens: 1047576
input_price: 0.1
output_price: 0.4
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: openai/gpt-4o
type: chat
max_input_tokens: 128000
@@ -1572,91 +1359,6 @@ list:
output_price: 10.0
supports_vision: true
supports_function_calling: true
- name: openai/gpt-4o-mini
type: chat
max_input_tokens: 128000
input_price: 0.15
output_price: 0.6
supports_vision: true
supports_function_calling: true
- name: openai/o4-mini
type: chat
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: openai/o4-mini-high
type: chat
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: openai/o3
type: chat
max_input_tokens: 200000
input_price: 2.0
output_price: 8.0
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: openai/o3-high
type: chat
real_name: openai/o3
max_input_tokens: 200000
input_price: 2.0
output_price: 8.0
patch:
body:
reasoning_effort: high
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: openai/o3-mini
type: chat
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: openai/o3-mini-high
type: chat
max_input_tokens: 200000
input_price: 1.1
output_price: 4.4
patch:
body:
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: openai/gpt-oss-120b
type: chat
max_input_tokens: 131072
@@ -1790,6 +1492,12 @@ list:
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
@@ -1803,26 +1511,11 @@ list:
input_price: 0.1
output_price: 0.3
supports_vision: true
- name: mistralai/magistral-medium-2506
- name: mistralai/devstral-2512
type: chat
max_input_tokens: 40960
input_price: 2.0
output_price: 5.0
- name: mistralai/magistral-medium-2506:thinking
type: chat
max_input_tokens: 40960
input_price: 2.0
output_price: 5.0
- name: mistralai/magistral-small-2506
type: chat
max_input_tokens: 40960
max_input_tokens: 262144
input_price: 0.5
output_price: 1.5
- name: mistralai/devstral-medium
type: chat
max_input_tokens: 131072
input_price: 0.4
output_price: 2.0
output_price: 0.22
supports_function_calling: true
- name: mistralai/devstral-small
type: chat
@@ -1836,6 +1529,12 @@ list:
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
@@ -1860,29 +1559,11 @@ list:
input_price: 0.0375
output_price: 0.15
max_output_tokens: 4096
- name: deepseek/deepseek-v3.2-exp
- name: deepseek/deepseek-v3.2
type: chat
max_input_tokens: 163840
input_price: 0.27
output_price: 0.4
- name: deepseek/deepseek-v3.1-terminus
type: chat
max_input_tokens: 163840
input_price: 0.23
output_price: 0.9
- name: deepseek/deepseek-chat-v3.1
type: chat
max_input_tokens: 163840
input_price: 0.2
output_price: 0.8
- name: deepseek/deepseek-r1-0528
type: chat
max_input_tokens: 128000
input_price: 0.5
output_price: 2.15
patch:
body:
include_reasoning: true
input_price: 0.25
output_price: 0.38
- name: qwen/qwen3-max
type: chat
max_input_tokens: 262144
@@ -1982,13 +1663,7 @@ list:
input_price: 0.29
output_price: 1.15
supports_function_calling: true
- name: x-ai/grok-4
type: chat
max_input_tokens: 256000
input_price: 3.0
output_price: 15.0
supports_function_calling: true
- name: x-ai/grok-4-fast
- name: x-ai/grok-4.1-fast
type: chat
max_input_tokens: 2000000
input_price: 0.2
@@ -2044,14 +1719,6 @@ list:
patch:
body:
include_reasoning: true
- name: perplexity/sonar-reasoning
type: chat
max_input_tokens: 127000
input_price: 1.0
output_price: 5.0
patch:
body:
include_reasoning: true
- name: perplexity/sonar-deep-research
type: chat
max_input_tokens: 200000
@@ -2060,17 +1727,24 @@ list:
patch:
body:
include_reasoning: true
- name: minimax/minimax-m2
- name: minimax/minimax-m2.1
type: chat
max_input_tokens: 196608
input_price: 0.15
output_price: 0.45
- name: z-ai/glm-4.6
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.5
output_price: 1.75
input_price: 0.16
output_price: 0.8
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
@@ -2079,12 +1753,6 @@ list:
max_output_tokens: 128000
supports_vision: true
supports_function_calling: true
- name: gpt-5-chat
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
@@ -2103,100 +1771,11 @@ list:
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: gpt-4.1-mini
type: chat
max_input_tokens: 1047576
max_output_tokens: 32768
supports_vision: true
supports_function_calling: true
- name: gpt-4.1-nano
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: gpt-4o-mini
type: chat
max_input_tokens: 128000
max_output_tokens: 16384
supports_function_calling: true
- name: o4-mini
type: chat
max_input_tokens: 200000
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o4-mini-high
type: chat
real_name: o4-mini
max_input_tokens: 200000
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3
type: chat
max_input_tokens: 200000
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3-high
type: chat
real_name: o3
max_input_tokens: 200000
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3-mini
type: chat
max_input_tokens: 200000
patch:
body:
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: o3-mini-high
type: chat
real_name: o3-mini
max_input_tokens: 200000
patch:
body:
reasoning_effort: high
max_tokens: null
temperature: null
top_p: null
supports_vision: true
supports_function_calling: true
system_prompt_prefix: Formatting re-enabled
- name: text-embedding-3-large
type: embedding
max_tokens_per_chunk: 8191
@@ -2338,26 +1917,12 @@ list:
input_price: 0.18
output_price: 0.69
supports_vision: true
- name: deepseek-ai/DeepSeek-V3.2-Exp
- name: deepseek-ai/DeepSeek-V3.2
type: chat
max_input_tokens: 163840
input_price: 0.27
output_price: 0.4
- name: deepseek-ai/DeepSeek-V3.1-Terminus
type: chat
max_input_tokens: 163840
input_price: 0.27
output_price: 1.0
- name: deepseek-ai/DeepSeek-V3.1
type: chat
max_input_tokens: 163840
input_price: 0.3
output_price: 1.0
- name: deepseek-ai/DeepSeek-R1-0528
type: chat
max_input_tokens: 163840
input_price: 0.5
output_price: 2.15
input_price: 0.26
output_price: 0.39
supports_function_calling: true
- name: google/gemma-3-27b-it
type: chat
max_input_tokens: 131072
@@ -2380,12 +1945,24 @@ list:
input_price: 0.55
output_price: 2.5
supports_function_calling: true
- name: zai-org/GLM-4.6
- 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.6
output_price: 1.9
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

View File

@@ -4,8 +4,9 @@
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
# for a list of all available themes
--theme="ansi"
#--theme="ansi"
#--theme="base16"
--theme="Nord"
# Enable this to use italic text on the terminal. This is not supported on all
# terminal emulators (like tmux, by default):

View File

@@ -1,15 +1,4 @@
export_secret() {
local name="$1"
local file="/run/secrets/${name}"
if [[ ! -f "$file" ]]; then
printf "secret file not found: %s\n" $file >&2
return 1
fi
# Read first line, remove trailing spaces/tabs, convert nulls to newlines
local value
value=$(head -n1 "$file" | sed 's/[ \t]*$//' | tr '\0' '\n')
export "${name}=${value}"
}
# Source library files in alphabetical order
for lib in ~/.config/direnv/lib/*.sh; do
[[ -f "$lib" ]] && source "$lib"
done

View File

@@ -0,0 +1,16 @@
# Exports a Podman / Docker secret as an environment variable
export-secret() {
local name="$1"
local file="/run/secrets/${name}"
if [[ ! -f "$file" ]]; then
printf "secret file not found: %s\n" $file >&2
return 1
fi
# Read first line, remove trailing spaces/tabs, convert nulls to newlines
local value
value=$(head -n1 "$file" | sed 's/[ \t]*$//' | tr '\0' '\n')
export "${name}=${value}"
}

View File

@@ -0,0 +1,73 @@
#!/usr/bin/env bash
# repo_overlay - a direnv function to copy files from centralized overlays directory
#
# Set REPO_OVERLAY_DIR to customize the overlays base directory (default: $HOME/overlays)
#
# Usage: Add 'repo_overlay' to your .envrc file
repo-overlay() {
# Get the repo URL from git remote
local repo_url
repo_url=$(git config --get remote.origin.url 2>/dev/null)
if [ -z "$repo_url" ]; then
echo "repo_overlay: Not a git repository or no origin remote configured"
return 1
fi
# Extract owner and repo name from URL
# Handles both SSH (git@github.com:owner/repo.git) and HTTPS (https://github.com/owner/repo.git)
local owner_repo
if [[ "$repo_url" =~ ^git@[^:]+:(.+)\.git$ ]] || \
[[ "$repo_url" =~ ^https?://[^/]+/(.+)\.git$ ]] || \
[[ "$repo_url" =~ ^git@[^:]+:(.+)$ ]] || \
[[ "$repo_url" =~ ^https?://[^/]+/(.+)$ ]]; then
owner_repo="${BASH_REMATCH[1]}"
else
echo "repo_overlay: Could not parse repository URL: $repo_url"
return 1
fi
# Determine overlay source directory
local overlay_base="${REPO_OVERLAY_DIR:-$HOME/overlays}"
local overlay_source="${overlay_base}/${owner_repo}"
if [ ! -d "$overlay_source" ]; then
echo "repo_overlay: No overlay directory found at ${overlay_source}"
return 0
fi
# Copy files from overlay directory
local copied_count=0
local skipped_count=0
# Find all files in overlay directory (excluding directories)
while IFS= read -r -d '' source_file; do
# Get relative path from overlay source
local rel_path="${source_file#$overlay_source/}"
local dest_file="./${rel_path}"
if [ -f "$dest_file" ]; then
echo "repo_overlay: Skipping ${rel_path} (already exists)"
((skipped_count++))
else
# Create parent directory if needed
local dest_dir
dest_dir=$(dirname "$dest_file")
mkdir -p "$dest_dir"
# Copy the file
cp "$source_file" "$dest_file"
echo "repo_overlay: Copied ${rel_path}"
((copied_count++))
fi
done < <(find "$overlay_source" -type f -print0)
# Summary
if [ $copied_count -eq 0 ] && [ $skipped_count -eq 0 ]; then
echo "repo_overlay: No files found in ${overlay_source}"
else
echo "repo_overlay: Complete (${copied_count} copied, ${skipped_count} skipped)"
fi
}

1
git/.config/git/ignore Normal file
View File

@@ -0,0 +1 @@
**/.claude/settings.local.json

View File

@@ -1,12 +1,12 @@
# local network -> local port
Match Host tuulikki.scalene.net exec "sudo ping -c 1 -W 1 -q 192.168.101.1"
Match Host tuulikki.scalene.net exec "nc -w 1 192.168.101.1 22"
Port 22
Host tuulikki.scalene.net
Port 22022
# local network -> local port
Match Host tonttu.scalene.net exec "sudo ping -c 1 -W 1 -q 192.168.101.1"
Match Host tonttu.scalene.net exec "nc -w 1 192.168.101.1 22"
Port 22
Host tonttu.scalene.net
@@ -16,7 +16,7 @@ Host www.scalene.net
User scalene
Port 22022
Match Host git.scalene.net exec "sudo ping -c 1 -W 1 -q 192.168.101.1"
Match Host git.scalene.net exec "nc -w 1 192.168.101.1 22"
Hostname tonttu.scalene.net
Host *.scalene.net

1
vim/.config/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.netrwhist

View File

@@ -0,0 +1,534 @@
" Name: chill
" Description: A customized version of 'quiet' from https://github.com/vim/colorschemes
" License: Vim License (see `:help license`)`
" Last Change: 2026-01-10
" Generated by Colortemplate v3.0.0-beta10
hi clear
let g:colors_name = 'quiet'
let s:t_Co = has('gui_running') ? 16777216 : str2nr(&t_Co)
let s:tgc = has('termguicolors') && &termguicolors
hi! link Added Normal
hi! link Boolean Constant
hi! link Changed Normal
hi! link Character Constant
hi! link Conditional Statement
hi! link Debug Special
hi! link Define PreProc
hi! link Delimiter Special
hi! link Exception Statement
hi! link Float Constant
hi! link Function Identifier
hi! link Include PreProc
hi! link Keyword Statement
hi! link Label Statement
hi! link Macro PreProc
hi! link MessageWindow Pmenu
hi! link Number Constant
hi! link Operator Statement
hi! link PopupNotification Todo
hi! link PreCondit PreProc
hi! link Removed Normal
hi! link Repeat Statement
hi! link SpecialChar Special
hi! link SpecialComment Special
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
hi! link StorageClass Type
hi! link String Constant
hi! link Structure Type
hi! link Tag Special
hi! link Terminal Normal
hi! link Typedef Type
hi! link debugBreakpoint ModeMsg
hi! link debugPC CursorLine
hi! link lCursor Cursor
" Inline code: `code`
hi markdownCode gui=italic cterm=italic
" Multiline fenced code blocks: ```code```
hi markdownCodeBlock gui=italic cterm=italic
if &background == 'dark'
let g:terminal_ansi_colors = ['#000000', '#d7005f', '#00af5f', '#d78700', '#0087d7', '#d787d7', '#00afaf', '#dadada', '#707070', '#ff005f', '#00d75f', '#ffaf00', '#5fafff', '#ff87ff', '#00d7d7', '#ffffff']
" use the default / current terminal background color for ctermbg
" hi Normal guifg=#dadada guibg=#000000 guisp=NONE gui=NONE ctermfg=253 ctermbg=16 cterm=NONE term=NONE
hi Normal guifg=#dadada guibg=#000000 guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi ColorColumn guifg=NONE guibg=#1c1c1c guisp=NONE gui=NONE ctermfg=NONE ctermbg=234 cterm=NONE term=reverse
hi Comment guifg=#707070 guibg=NONE guisp=NONE gui=bold ctermfg=242 ctermbg=NONE cterm=bold term=bold
hi Conceal guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=NONE
hi Constant guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi CurSearch guifg=#ff5fff guibg=#000000 guisp=NONE gui=reverse ctermfg=207 ctermbg=16 cterm=reverse term=reverse
hi Cursor guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=reverse
hi CursorColumn guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=NONE
hi CursorIM guifg=#000000 guibg=#afff00 guisp=NONE gui=NONE ctermfg=16 ctermbg=154 cterm=NONE term=NONE
hi CursorLine guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=underline
hi CursorLineNr guifg=#dadada guibg=#303030 guisp=NONE gui=NONE ctermfg=253 ctermbg=236 cterm=NONE term=bold
hi DiffAdd guifg=#00af00 guibg=#000000 guisp=NONE gui=reverse ctermfg=34 ctermbg=16 cterm=reverse term=reverse
hi DiffChange guifg=#87afd7 guibg=#000000 guisp=NONE gui=reverse ctermfg=110 ctermbg=16 cterm=reverse term=NONE
hi DiffDelete guifg=#d75f5f guibg=#000000 guisp=NONE gui=reverse ctermfg=167 ctermbg=16 cterm=reverse term=reverse
hi DiffText guifg=#d787d7 guibg=#000000 guisp=NONE gui=reverse ctermfg=176 ctermbg=16 cterm=reverse term=reverse
hi Directory guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi EndOfBuffer guifg=#707070 guibg=NONE guisp=NONE gui=NONE ctermfg=242 ctermbg=NONE cterm=NONE term=NONE
hi Error guifg=#ff005f guibg=#000000 guisp=NONE gui=bold,reverse ctermfg=197 ctermbg=16 cterm=bold,reverse term=bold,reverse
hi ErrorMsg guifg=#dadada guibg=#000000 guisp=NONE gui=reverse ctermfg=253 ctermbg=16 cterm=reverse term=bold,reverse
hi FoldColumn guifg=#707070 guibg=NONE guisp=NONE gui=NONE ctermfg=242 ctermbg=NONE cterm=NONE term=NONE
hi Folded guifg=#707070 guibg=#000000 guisp=NONE gui=NONE ctermfg=242 ctermbg=16 cterm=NONE term=NONE
hi Identifier guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=bold term=bold
hi Ignore guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi IncSearch guifg=#ffaf00 guibg=#000000 guisp=NONE gui=reverse ctermfg=214 ctermbg=16 cterm=reverse term=bold,reverse,underline
hi LineNr guifg=#585858 guibg=NONE guisp=NONE gui=NONE ctermfg=240 ctermbg=NONE cterm=NONE term=NONE
hi MatchParen guifg=#ff00af guibg=NONE guisp=NONE gui=bold ctermfg=199 ctermbg=NONE cterm=bold term=bold,underline
hi ModeMsg guifg=#dadada guibg=NONE guisp=NONE gui=bold ctermfg=253 ctermbg=NONE cterm=bold term=bold
hi MoreMsg guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi NonText guifg=#707070 guibg=NONE guisp=NONE gui=NONE ctermfg=242 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=16 ctermbg=248 cterm=NONE term=reverse
hi PmenuExtra guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=16 ctermbg=248 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#000000 guibg=#dadada guisp=NONE gui=NONE ctermfg=16 ctermbg=253 cterm=NONE term=NONE
hi PmenuKind guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=bold ctermfg=16 ctermbg=248 cterm=bold term=bold
hi PmenuKindSel guifg=#000000 guibg=#dadada guisp=NONE gui=bold ctermfg=16 ctermbg=253 cterm=bold term=bold
hi PmenuMatch guifg=#d7005f guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=161 ctermbg=248 cterm=NONE term=NONE
hi PmenuMatchSel guifg=#d7005f guibg=#dadada guisp=NONE gui=bold ctermfg=161 ctermbg=253 cterm=bold term=bold
hi PmenuSbar guifg=#707070 guibg=#585858 guisp=NONE gui=NONE ctermfg=242 ctermbg=240 cterm=NONE term=reverse
hi PmenuSel guifg=#000000 guibg=#dadada guisp=NONE gui=NONE ctermfg=16 ctermbg=253 cterm=NONE term=bold
hi PmenuThumb guifg=#dadada guibg=#dadada guisp=NONE gui=NONE ctermfg=253 ctermbg=253 cterm=NONE term=NONE
hi PreProc guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=standout
hi QuickFixLine guifg=#ff5fff guibg=#000000 guisp=NONE gui=reverse ctermfg=207 ctermbg=16 cterm=reverse term=NONE
hi Search guifg=#00afff guibg=#000000 guisp=NONE gui=reverse ctermfg=39 ctermbg=16 cterm=reverse term=reverse
hi SignColumn guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=reverse
hi Special guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi SpecialKey guifg=#707070 guibg=NONE guisp=NONE gui=bold ctermfg=242 ctermbg=NONE cterm=bold term=bold
hi SpellBad guifg=#d7005f guibg=NONE guisp=#d7005f gui=undercurl ctermfg=161 ctermbg=NONE cterm=underline term=underline
hi SpellCap guifg=#0087d7 guibg=NONE guisp=#0087d7 gui=undercurl ctermfg=32 ctermbg=NONE cterm=underline term=underline
hi SpellLocal guifg=#d787d7 guibg=NONE guisp=#d787d7 gui=undercurl ctermfg=176 ctermbg=NONE cterm=underline term=underline
hi SpellRare guifg=#00afaf guibg=NONE guisp=#00afaf gui=undercurl ctermfg=37 ctermbg=NONE cterm=underline term=underline
hi Statement guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=bold term=bold
hi StatusLine guifg=#000000 guibg=#dadada guisp=NONE gui=bold ctermfg=16 ctermbg=253 cterm=bold term=bold,reverse
hi StatusLineNC guifg=#707070 guibg=#000000 guisp=NONE gui=reverse ctermfg=242 ctermbg=16 cterm=reverse term=bold,underline
hi TabLine guifg=#707070 guibg=#000000 guisp=NONE gui=reverse ctermfg=242 ctermbg=16 cterm=reverse term=bold,underline
hi TabLineFill guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi TabLineSel guifg=#000000 guibg=#dadada guisp=NONE gui=bold ctermfg=16 ctermbg=253 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=bold term=bold
hi TitleBar guifg=#dadada guibg=#4c4c4c guisp=NONE gui=NONE ctermfg=253 ctermbg=237 cterm=NONE term=NONE
hi TitleBarNC guifg=#707070 guibg=#3c3c3c guisp=NONE gui=NONE ctermfg=242 ctermbg=236 cterm=NONE term=NONE
hi Todo guifg=#00ffaf guibg=NONE guisp=NONE gui=bold,reverse ctermfg=49 ctermbg=NONE cterm=bold,reverse term=bold,reverse
hi ToolbarButton guifg=#dadada guibg=#000000 guisp=NONE gui=bold ctermfg=253 ctermbg=16 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#000000 guisp=NONE gui=NONE ctermfg=NONE ctermbg=16 cterm=NONE term=reverse
hi Type guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=NONE
hi Underlined guifg=#dadada guibg=NONE guisp=NONE gui=underline ctermfg=253 ctermbg=NONE cterm=underline term=underline
hi VertSplit guifg=#707070 guibg=#000000 guisp=NONE gui=NONE ctermfg=242 ctermbg=16 cterm=NONE term=NONE
hi Visual guifg=#ffaf00 guibg=#000000 guisp=NONE gui=reverse ctermfg=214 ctermbg=16 cterm=reverse term=reverse
hi VisualNOS guifg=NONE guibg=#303030 guisp=NONE gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE term=NONE
hi WarningMsg guifg=#dadada guibg=NONE guisp=NONE gui=NONE ctermfg=253 ctermbg=NONE cterm=NONE term=standout
hi WildMenu guifg=#00afff guibg=#000000 guisp=NONE gui=bold ctermfg=39 ctermbg=16 cterm=bold term=bold
if s:tgc || s:t_Co >= 256
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Comment ctermfg=darkgrey ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi CurSearch ctermfg=magenta ctermbg=black cterm=reverse
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Error ctermfg=darkred ctermbg=black cterm=bold,reverse
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=yellow ctermbg=black cterm=reverse
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi PmenuKindSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuMatch ctermfg=NONE ctermbg=darkred cterm=reverse
hi PmenuMatchSel ctermfg=darkred ctermbg=NONE cterm=bold
hi PmenuSbar ctermfg=darkgrey ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=cyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Statement ctermfg=NONE ctermbg=bold cterm=bold
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=darkgrey ctermbg=NONE cterm=reverse
hi TabLine ctermfg=darkgrey ctermbg=NONE cterm=reverse
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=bold cterm=bold
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi VertSplit ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Visual ctermfg=darkyellow ctermbg=black cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi CurSearch ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=darkred ctermbg=black cterm=bold,reverse
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=bold
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=darkyellow ctermbg=black cterm=reverse
hi LineNr ctermfg=NONE ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=NONE ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi PmenuKindSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuMatch ctermfg=NONE ctermbg=darkred cterm=reverse
hi PmenuMatchSel ctermfg=darkred ctermbg=NONE cterm=bold
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=darkcyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=NONE ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Statement ctermfg=NONE ctermbg=bold cterm=bold
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLine ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=grey ctermbg=black cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=black cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi VertSplit ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=darkyellow ctermbg=black cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
finish
endif
if s:t_Co >= 0
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Float term=NONE
hi Function term=NONE
hi Number term=NONE
hi StatusLineTerm term=bold,reverse
hi StatusLineTermNC term=bold,underline
hi Terminal term=NONE
finish
endif
finish
endif
if &background == 'light'
let g:terminal_ansi_colors = ['#000000', '#af0000', '#005f00', '#af5f00', '#005faf', '#870087', '#008787', '#d7d7d7', '#626262', '#d70000', '#008700', '#d78700', '#0087d7', '#af00af', '#00afaf', '#ffffff']
hi Normal guifg=#000000 guibg=#d7d7d7 guisp=NONE gui=NONE ctermfg=16 ctermbg=188 cterm=NONE term=NONE
hi ColorColumn guifg=NONE guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=NONE ctermbg=254 cterm=NONE term=reverse
hi Comment guifg=#000000 guibg=NONE guisp=NONE gui=bold ctermfg=16 ctermbg=NONE cterm=bold term=bold
hi Conceal guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=NONE
hi Constant guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
hi CurSearch guifg=#ff5fff guibg=#000000 guisp=NONE gui=reverse ctermfg=207 ctermbg=16 cterm=reverse term=reverse
hi Cursor guifg=NONE guibg=NONE guisp=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse term=reverse
hi CursorColumn guifg=NONE guibg=#eeeeee guisp=NONE gui=NONE ctermfg=NONE ctermbg=255 cterm=NONE term=NONE
hi CursorIM guifg=#000000 guibg=#afff00 guisp=NONE gui=NONE ctermfg=16 ctermbg=154 cterm=NONE term=NONE
hi CursorLine guifg=NONE guibg=#eeeeee guisp=NONE gui=NONE ctermfg=NONE ctermbg=255 cterm=NONE term=underline
hi CursorLineNr guifg=#000000 guibg=#eeeeee guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=bold
hi DiffAdd guifg=#87d787 guibg=#000000 guisp=NONE gui=reverse ctermfg=114 ctermbg=16 cterm=reverse term=reverse
hi DiffChange guifg=#afafd7 guibg=#000000 guisp=NONE gui=reverse ctermfg=146 ctermbg=16 cterm=reverse term=NONE
hi DiffDelete guifg=#d78787 guibg=#000000 guisp=NONE gui=reverse ctermfg=174 ctermbg=16 cterm=reverse term=reverse
hi DiffText guifg=#d787d7 guibg=#000000 guisp=NONE gui=reverse ctermfg=176 ctermbg=16 cterm=reverse term=reverse
hi Directory guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
hi EndOfBuffer guifg=#626262 guibg=NONE guisp=NONE gui=NONE ctermfg=241 ctermbg=NONE cterm=NONE term=NONE
hi Error guifg=#ff005f guibg=#000000 guisp=NONE gui=bold,reverse ctermfg=197 ctermbg=16 cterm=bold,reverse term=bold,reverse
hi ErrorMsg guifg=#000000 guibg=#d7d7d7 guisp=NONE gui=reverse ctermfg=16 ctermbg=188 cterm=reverse term=bold,reverse
hi FoldColumn guifg=#626262 guibg=NONE guisp=NONE gui=NONE ctermfg=241 ctermbg=NONE cterm=NONE term=NONE
hi Folded guifg=#626262 guibg=#d7d7d7 guisp=NONE gui=NONE ctermfg=241 ctermbg=188 cterm=NONE term=NONE
hi Identifier guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=bold term=bold
hi Ignore guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
hi IncSearch guifg=#ffaf00 guibg=#000000 guisp=NONE gui=reverse ctermfg=214 ctermbg=16 cterm=reverse term=bold,reverse,underline
hi LineNr guifg=#a8a8a8 guibg=NONE guisp=NONE gui=NONE ctermfg=248 ctermbg=NONE cterm=NONE term=NONE
hi MatchParen guifg=#ff00af guibg=#d7d7d7 guisp=NONE gui=bold ctermfg=199 ctermbg=188 cterm=bold term=bold,underline
hi ModeMsg guifg=#000000 guibg=NONE guisp=NONE gui=bold ctermfg=16 ctermbg=NONE cterm=bold term=bold
hi MoreMsg guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
hi NonText guifg=#626262 guibg=NONE guisp=NONE gui=NONE ctermfg=241 ctermbg=NONE cterm=NONE term=NONE
hi Pmenu guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=16 ctermbg=248 cterm=NONE term=reverse
hi PmenuExtra guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=16 ctermbg=248 cterm=NONE term=NONE
hi PmenuExtraSel guifg=#d7d7d7 guibg=#000000 guisp=NONE gui=NONE ctermfg=188 ctermbg=16 cterm=NONE term=NONE
hi PmenuKind guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=bold ctermfg=16 ctermbg=248 cterm=bold term=bold
hi PmenuKindSel guifg=#d7d7d7 guibg=#000000 guisp=NONE gui=bold ctermfg=188 ctermbg=16 cterm=bold term=bold
hi PmenuMatch guifg=#d70000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=160 ctermbg=248 cterm=NONE term=NONE
hi PmenuMatchSel guifg=#d70000 guibg=#000000 guisp=NONE gui=bold ctermfg=160 ctermbg=16 cterm=bold term=bold
hi PmenuSbar guifg=#000000 guibg=#e4e4e4 guisp=NONE gui=NONE ctermfg=16 ctermbg=254 cterm=NONE term=reverse
hi PmenuSel guifg=#d7d7d7 guibg=#000000 guisp=NONE gui=NONE ctermfg=188 ctermbg=16 cterm=NONE term=bold
hi PmenuThumb guifg=#000000 guibg=#000000 guisp=NONE gui=NONE ctermfg=16 ctermbg=16 cterm=NONE term=NONE
hi PreProc guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
hi Question guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=standout
hi QuickFixLine guifg=#ff5fff guibg=#000000 guisp=NONE gui=reverse ctermfg=207 ctermbg=16 cterm=reverse term=NONE
hi Search guifg=#00afff guibg=#000000 guisp=NONE gui=reverse ctermfg=39 ctermbg=16 cterm=reverse term=reverse
hi SignColumn guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=reverse
hi Special guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
hi SpecialKey guifg=#626262 guibg=NONE guisp=NONE gui=bold ctermfg=241 ctermbg=NONE cterm=bold term=bold
hi SpellBad guifg=#af0000 guibg=#d7d7d7 guisp=#af0000 gui=undercurl ctermfg=124 ctermbg=188 cterm=underline term=underline
hi SpellCap guifg=#005faf guibg=#d7d7d7 guisp=#005faf gui=undercurl ctermfg=25 ctermbg=188 cterm=underline term=underline
hi SpellLocal guifg=#870087 guibg=#d7d7d7 guisp=#870087 gui=undercurl ctermfg=90 ctermbg=188 cterm=underline term=underline
hi SpellRare guifg=#008787 guibg=#d7d7d7 guisp=#008787 gui=undercurl ctermfg=30 ctermbg=188 cterm=underline term=underline
hi Statement guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=bold term=bold
hi StatusLine guifg=#eeeeee guibg=#000000 guisp=NONE gui=bold ctermfg=255 ctermbg=16 cterm=bold term=bold,reverse
hi StatusLineNC guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=16 ctermbg=248 cterm=NONE term=bold,underline
hi TabLine guifg=#000000 guibg=#a8a8a8 guisp=NONE gui=NONE ctermfg=16 ctermbg=248 cterm=NONE term=bold,underline
hi TabLineFill guifg=#000000 guibg=#d7d7d7 guisp=NONE gui=NONE ctermfg=16 ctermbg=188 cterm=NONE term=NONE
hi TabLineSel guifg=#eeeeee guibg=#000000 guisp=NONE gui=bold ctermfg=255 ctermbg=16 cterm=bold term=bold,reverse
hi Title guifg=NONE guibg=NONE guisp=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE term=NONE
hi TitleBar guifg=#000000 guibg=#ececec guisp=NONE gui=NONE ctermfg=16 ctermbg=255 cterm=NONE term=NONE
hi TitleBarNC guifg=#626262 guibg=#e7e7e7 guisp=NONE gui=NONE ctermfg=241 ctermbg=255 cterm=NONE term=NONE
hi Todo guifg=#00ffaf guibg=#000000 guisp=NONE gui=bold,reverse ctermfg=49 ctermbg=16 cterm=bold,reverse term=bold,reverse
hi ToolbarButton guifg=#000000 guibg=#d7d7d7 guisp=NONE gui=bold ctermfg=16 ctermbg=188 cterm=bold term=bold,reverse
hi ToolbarLine guifg=NONE guibg=#d7d7d7 guisp=NONE gui=NONE ctermfg=NONE ctermbg=188 cterm=NONE term=reverse
hi Type guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=NONE
hi Underlined guifg=#000000 guibg=NONE guisp=NONE gui=underline ctermfg=16 ctermbg=NONE cterm=underline term=underline
hi VertSplit guifg=#626262 guibg=#d7d7d7 guisp=NONE gui=NONE ctermfg=241 ctermbg=188 cterm=NONE term=NONE
hi Visual guifg=#ffaf00 guibg=#000000 guisp=NONE gui=reverse ctermfg=214 ctermbg=16 cterm=reverse term=reverse
hi VisualNOS guifg=NONE guibg=#eeeeee guisp=NONE gui=NONE ctermfg=NONE ctermbg=255 cterm=NONE term=NONE
hi WarningMsg guifg=#000000 guibg=NONE guisp=NONE gui=NONE ctermfg=16 ctermbg=NONE cterm=NONE term=standout
hi WildMenu guifg=#000000 guibg=#eeeeee guisp=NONE gui=bold ctermfg=16 ctermbg=255 cterm=bold term=bold
if s:tgc || s:t_Co >= 256
finish
endif
if s:t_Co >= 16
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi CurSearch ctermfg=magenta ctermbg=black cterm=reverse
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Error ctermfg=darkred ctermbg=black cterm=bold,reverse
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=yellow ctermbg=black cterm=reverse
hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi PmenuKindSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuMatch ctermfg=NONE ctermbg=darkred cterm=reverse
hi PmenuMatchSel ctermfg=darkred ctermbg=NONE cterm=bold
hi PmenuSbar ctermfg=darkgrey ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=cyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Statement ctermfg=NONE ctermbg=NONE cterm=bold
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=darkgrey ctermbg=NONE cterm=reverse
hi TabLine ctermfg=darkgrey ctermbg=NONE cterm=reverse
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi VertSplit ctermfg=darkgrey ctermbg=NONE cterm=NONE
hi Visual ctermfg=darkyellow ctermbg=black cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
finish
endif
if s:t_Co >= 8
hi Normal ctermfg=NONE ctermbg=NONE cterm=NONE
hi ColorColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Comment ctermfg=NONE ctermbg=NONE cterm=bold
hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
hi Constant ctermfg=NONE ctermbg=NONE cterm=NONE
hi CurSearch ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse
hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorIM ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLine ctermfg=NONE ctermbg=NONE cterm=NONE
hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=bold
hi DiffAdd ctermfg=darkgreen ctermbg=black cterm=reverse
hi DiffChange ctermfg=darkblue ctermbg=black cterm=reverse
hi DiffDelete ctermfg=darkred ctermbg=black cterm=reverse
hi DiffText ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Directory ctermfg=NONE ctermbg=NONE cterm=NONE
hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE
hi Error ctermfg=darkred ctermbg=black cterm=bold,reverse
hi ErrorMsg ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
hi Folded ctermfg=NONE ctermbg=NONE cterm=NONE
hi Identifier ctermfg=NONE ctermbg=NONE cterm=NONE
hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
hi IncSearch ctermfg=darkyellow ctermbg=black cterm=reverse
hi LineNr ctermfg=NONE ctermbg=NONE cterm=NONE
hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold
hi MoreMsg ctermfg=NONE ctermbg=NONE cterm=NONE
hi NonText ctermfg=NONE ctermbg=NONE cterm=NONE
hi Pmenu ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtra ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuExtraSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuKind ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi PmenuKindSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuMatch ctermfg=NONE ctermbg=darkred cterm=reverse
hi PmenuMatchSel ctermfg=darkred ctermbg=NONE cterm=bold
hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=reverse
hi PmenuSel ctermfg=NONE ctermbg=NONE cterm=bold
hi PmenuThumb ctermfg=NONE ctermbg=NONE cterm=NONE
hi PreProc ctermfg=NONE ctermbg=NONE cterm=NONE
hi Question ctermfg=NONE ctermbg=NONE cterm=standout
hi QuickFixLine ctermfg=darkmagenta ctermbg=black cterm=reverse
hi Search ctermfg=darkcyan ctermbg=black cterm=reverse
hi SignColumn ctermfg=NONE ctermbg=NONE cterm=reverse
hi Special ctermfg=NONE ctermbg=NONE cterm=NONE
hi SpecialKey ctermfg=NONE ctermbg=NONE cterm=bold
hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
hi Statement ctermfg=NONE ctermbg=NONE cterm=bold
hi StatusLine ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi StatusLineNC ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLine ctermfg=NONE ctermbg=NONE cterm=bold,underline
hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=NONE
hi TabLineSel ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi Title ctermfg=NONE ctermbg=NONE cterm=NONE
hi TitleBar ctermfg=black ctermbg=white cterm=NONE
hi TitleBarNC ctermfg=darkgrey ctermbg=white cterm=NONE
hi Todo ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarButton ctermfg=NONE ctermbg=NONE cterm=bold,reverse
hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=reverse
hi Type ctermfg=NONE ctermbg=NONE cterm=NONE
hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
hi VertSplit ctermfg=NONE ctermbg=NONE cterm=NONE
hi Visual ctermfg=darkyellow ctermbg=black cterm=reverse
hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=NONE
hi WarningMsg ctermfg=NONE ctermbg=NONE cterm=standout
hi WildMenu ctermfg=NONE ctermbg=NONE cterm=bold
finish
endif
if s:t_Co >= 0
hi CursorLineFold term=underline
hi CursorLineSign term=underline
hi Float term=NONE
hi Function term=NONE
hi Number term=NONE
hi StatusLineTerm term=bold,reverse
hi StatusLineTermNC term=bold,underline
hi Terminal term=NONE
finish
endif
endif
" vim: et ts=8 sw=2 sts=2

View File

@@ -21,61 +21,80 @@ let g:colors_name="theunixzoo"
" Base Colours
hi Normal guibg=#242429 guifg=#d48130 ctermfg=None ctermbg=None
" Vim Features
hi Cursor guibg=yellow guifg=black ctermbg=None ctermfg=None cterm=None
hi VertSplit guibg=#46464e guifg=grey60 ctermbg=gray ctermfg=None cterm=None
hi Folded guibg=fg guifg=bg ctermbg=None ctermfg=None cterm=None
hi LineNr guifg=grey30 guibg=black ctermbg=None ctermfg=None cterm=None
hi NonText guifg=fg guibg=#19191e ctermbg=None ctermfg=None cterm=None
hi Search guibg=fg guifg=black ctermbg=yellow ctermfg=blue cterm=None
hi IncSearch guibg=bg guifg=#ded032 ctermbg=blue ctermfg=yellow cterm=None
hi StatusLine guibg=black guifg=gray80 ctermbg=gray ctermfg=black cterm=None
hi StatusLineNC guibg=black guifg=gray20 ctermbg=gray ctermfg=black cterm=None
hi Visual guifg=lightblue guibg=#001146 gui=None ctermbg=None ctermfg=None cterm=inverse
hi ErrorMsg guifg=bg guibg=fg ctermbg=None ctermfg=None cterm=None
hi WarningMsg guifg=bg guibg=fg ctermbg=None ctermfg=None cterm=None
hi Error guifg=fg guibg=gray30 ctermbg=red ctermfg=None cterm=None
hi SpecialKey guifg=fg guibg=bg ctermbg=None ctermfg=None cterm=None
hi Directory guifg=fg guibg=bg gui=bold ctermbg=None ctermfg=None cterm=None
hi ModeMsg guifg=fg guibg=bg gui=bold ctermbg=None ctermfg=None cterm=None
hi CursorLine guibg=bg ctermbg=None ctermfg=None cterm=underline
hi Pmenu guifg=seagreen guibg=black ctermbg=gray ctermfg=black cterm=None
hi PmenuSel guifg=skyblue guibg=gray30 ctermbg=yellow ctermfg=black cterm=None
hi Question guifg=seagreen guibg=bg ctermbg=None ctermfg=None cterm=None
hi MoreMsg guifg=seagreen guibg=bg ctermbg=None ctermfg=None cterm=None
hi DiffDelete guifg=gray20 guibg=gray5 ctermbg=None ctermfg=None cterm=None
hi DiffChange guifg=fg guibg=gray30 ctermbg=None ctermfg=None cterm=None
hi DiffAdd guifg=fg guibg=bg ctermbg=None ctermfg=None cterm=None
hi DiffText guifg=black guibg=seagreen gui=None ctermbg=None ctermfg=None cterm=None
hi FoldColumn guifg=fg guibg=bg ctermbg=None ctermfg=None cterm=None
hi Title guifg=fg guibg=bg gui=bold ctermfg=None ctermbg=None cterm=bold
hi VimHiGroup guifg=fg guibg=bg gui=None ctermbg=None ctermfg=None cterm=None
hi VimHiLink guifg=fg guibg=bg gui=None ctermbg=None ctermfg=None cterm=None
hi VimGroup guifg=fg guibg=bg gui=None ctermbg=None ctermfg=None cterm=None
hi Underlined guifg=lightblue guibg=bg gui=bold ctermbg=None ctermfg=None cterm=underline
hi SpellBad guibg=bg gui=undercurl guisp=red ctermbg=red ctermfg=yellow term=None
hi SpellCap guibg=bg gui=undercurl guisp=red ctermbg=red ctermfg=yellow term=None
hi SpellRare guibg=bg gui=undercurl guisp=red ctermbg=red ctermfg=yellow term=None
hi SpellLocal guibg=bg gui=undercurl guisp=red ctermbg=red ctermfg=yellow term=None
hi HelpStar guibg=bg guifg=fg gui=None ctermbg=None ctermfg=None cterm=None
" Vim Feature
hi Cursor ctermbg=None ctermfg=None cterm=inverse
hi VertSplit ctermbg=gray ctermfg=None cterm=None
hi Folded ctermbg=None ctermfg=None cterm=None
hi LineNr ctermbg=None ctermfg=None cterm=None
hi NonText ctermbg=None ctermfg=None cterm=None
hi Search ctermbg=yellow ctermfg=blue cterm=None
hi IncSearch ctermbg=blue ctermfg=yellow cterm=None
hi StatusLine ctermbg=gray ctermfg=black cterm=None
hi StatusLineNC ctermbg=gray ctermfg=black cterm=None
hi Visual ctermbg=None ctermfg=None cterm=inverse
hi ErrorMsg ctermbg=None ctermfg=None cterm=None
hi WarningMsg ctermbg=None ctermfg=None cterm=None
hi Error ctermbg=red ctermfg=None cterm=None
hi SpecialKey ctermbg=None ctermfg=None cterm=None
hi Directory ctermbg=None ctermfg=None cterm=None
hi ModeMsg ctermbg=None ctermfg=None cterm=None
hi CursorLine ctermbg=black ctermfg=None cterm=None
hi Pmenu ctermbg=gray ctermfg=black cterm=None
hi PmenuSel ctermbg=yellow ctermfg=black cterm=None
hi Question ctermbg=None ctermfg=None cterm=None
hi MoreMsg ctermbg=None ctermfg=None cterm=None
hi DiffDelete ctermbg=None ctermfg=None cterm=None
hi DiffChange ctermbg=None ctermfg=None cterm=None
hi DiffAdd ctermbg=None ctermfg=None cterm=None
hi DiffText ctermbg=None ctermfg=None cterm=None
hi FoldColumn ctermbg=None ctermfg=None cterm=None
hi Title ctermfg=None ctermbg=None cterm=bold
hi VimHiGroup ctermbg=None ctermfg=None cterm=None
hi VimHiLink ctermbg=None ctermfg=None cterm=None
hi VimGroup ctermbg=None ctermfg=None cterm=None
hi Underlined ctermbg=None ctermfg=None cterm=underline
hi SpellBad ctermbg=red ctermfg=yellow term=None
hi SpellCap ctermbg=red ctermfg=yellow term=None
hi SpellRare ctermbg=red ctermfg=yellow term=None
hi SpellLocal ctermbg=red ctermfg=yellow term=None
hi HelpStar ctermbg=None ctermfg=None cterm=None
" Language Features
hi Identifier guifg=fg guibg=bg ctermfg=None ctermbg=None cterm=bold
hi Function guifg=fg guibg=bg ctermfg=None ctermbg=None cterm=bold
hi Comment guifg=seagreen guibg=bg ctermfg=10 ctermbg=None cterm=None
hi javaCOmmentTitle guifg=seagreen guibg=bg ctermfg=red ctermbg=None cterm=None
hi Constant guifg=fg guibg=bg ctermfg=None ctermbg=None cterm=None
hi Statement guifg=#f5593f guibg=bg gui=None ctermfg=None ctermbg=None cterm=bold
hi PreProc guifg=fg gui=bold guibg=bg ctermfg=None ctermbg=None cterm=bold
hi Type guifg=fg guibg=bg gui=None ctermfg=None ctermbg=None cterm=None
hi Special gui=None guifg=#deb032 guibg=bg ctermfg=None ctermbg=None cterm=None
hi Todo guibg=#330088 guifg=seagreen ctermfg=black ctermbg=cyan cterm=None
hi cTodo guibg=#330088 guifg=seagreen ctermfg=black ctermbg=cyan cterm=None
hi ColorColumn guibg=gray20 guifg=fg ctermfg=magenta ctermbg=None cterm=None
hi cPreCondit guifg=#cb4b16 ctermfg=None ctermbg=None cterm=None
hi texMathZoneW guibg=bg guifg=fg ctermfg=None ctermbg=None cterm=None
hi texMathOper guibg=bg guifg=fg ctermfg=None ctermbg=None cterm=None
hi Delimiter guifg=#f5593f guibg=bg gui=None ctermfg=None ctermbg=None cterm=bold
hi Identifier ctermfg=None ctermbg=None cterm=bold
hi Function ctermfg=None ctermbg=None cterm=bold
hi Comment ctermfg=10 ctermbg=None cterm=None
hi javaCOmmentTitle ctermfg=red ctermbg=None cterm=None
hi Constant ctermfg=None ctermbg=None cterm=None
hi Statement ctermfg=None ctermbg=None cterm=bold
hi PreProc ctermfg=None ctermbg=None cterm=bold
hi Type ctermfg=None ctermbg=None cterm=None
hi Special ctermfg=None ctermbg=None cterm=None
hi Todo ctermfg=black ctermbg=cyan cterm=None
hi cTodo ctermfg=black ctermbg=cyan cterm=None
hi ColorColumn ctermfg=magenta ctermbg=None cterm=None
hi cPreCondit ctermfg=None ctermbg=None cterm=None
hi texMathZoneW ctermfg=None ctermbg=None cterm=None
hi texMathOper ctermfg=None ctermbg=None cterm=None
hi Delimiter ctermfg=None ctermbg=None cterm=bold
" colors
" 1 - red
" 2 - green
" 3 - orange
" 4 - cyan
" 5 - magenta
" 6 - cyan
" 7 - white
" Markdown
" Inline code: `code`
hi markdownCode ctermfg=3 cterm=italic
" Multiline fenced code blocks: ```code```
hi markdownCodeBlock ctermfg=3 cterm=italic
" **text** should be bold
hi markdownBold gui=bold cterm=bold
" *text* should be italic
hi markdownItalic gui=italic cterm=italic
" File Manager
hi netrwMarkFile guifg=fg guibg=seagreen ctermfg=None ctermbg=None cterm=inverse
hi netrwMarkFile ctermfg=None ctermbg=None cterm=inverse

View File

@@ -7,17 +7,24 @@ set autoindent
" line length is 89
set textwidth=89
" Enable soft wrapping
set wrap
" Default: No wrap for code and config
set nowrap
" Wrap at word boundaries
set linebreak
" set linebreak
" Maintain indentation on wrapped lines
set breakindent
" set breakindent
" Optional: visual indicator for wrapped lines
set showbreak=↪\
set showbreak=↪\
" a group for wrapping by filetype
augroup filetype_wrapping
autocmd!
" Enable soft wrap for prose
autocmd FileType markdown,text,gitcommit setlocal wrap linebreak breakindent
" Maintain no wrap for code and structured data
autocmd FileType go,python,sh,yaml,json setlocal nowrap
augroup END
" Navigate visual lines instead of logical lines
nnoremap j gj
@@ -29,6 +36,7 @@ set backspace=indent,eol,start
set background=dark
colorscheme theunixzoo
"colorscheme chill
"colorscheme plain-cterm
"colorscheme aomi-grayscale
"colorscheme solarized8
@@ -56,11 +64,14 @@ filetype indent on
set ofu=syntaxcomplete#Complete#
" au FileType python setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4
au FileType markdown setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4
au FileType markdown setlocal tabstop=4 expandtab shiftwidth=4 softtabstop=4 wrap
" typing idate inserts the current date
iab idate <c-r>=strftime("%Y-%m-%d")<cr>
" insert triple backticks for markdown code blocks with Ctrl-b
inoremap <C-b> ```<CR>```<Esc>O
" use \ toc to insert a table of contents for markdown from the current line to EOF
" nmap <leader>toc <cmd>.put =execute('.,$write !gh-md-toc --hide-header --hide-footer')<cr>
nmap <leader>toc :put =system('gh-md-toc --hide-header --hide-footer --indent=4', getline('.', '$'))<cr>
@@ -112,6 +123,23 @@ let g:copilot_enabled = 0
" map key to enable copilot
nmap <leader>cp :let g:copilot_enabled = 1<CR>
def ShowPalette()
vnew
setlocal buftype=nofile bufhidden=wipe noswapfile
# Iterate through all highlight groups
for group in getcompletion('', 'highlight')
# Skip cleared/empty groups
if hlexists(group)
append(line('$'), group)
# Use syntax keyword to apply the highlight group to its own name
exec 'syntax keyword ' .. group .. ' ' .. group
endif
endfor
enddef
command! ShowPalette call ShowPalette()
" format any yaml file
" autocmd BufWritePre *.yaml :%!yq -i %

View File

@@ -1,6 +1,7 @@
# {{format-date now '%Y-%m-%d'}}
[yesterday](daily/{{format-date (date "yesterday") '%Y%m%d'}}.md)
[Yesterday](daily/{{format-date (date "yesterday") '%Y%m%d'}}.md)
[Weekly Goals](daily/weekly-goals.md)
## goals
- a bullet

View File

@@ -1,2 +1,4 @@
# ignore all files in the stew directory
stew/*
containers/
direnv

View File

@@ -0,0 +1,17 @@
aws-get-bedrock-profile () {
profile_arn=$(aws bedrock list-inference-profiles \
| jq -r '.inferenceProfileSummaries
| map(select(.inferenceProfileId | startswith("us.")))
| sort_by(.inferenceProfileName)
| .[]
| [.inferenceProfileArn, .inferenceProfileName, .description]
| @tsv' \
| fzf \
--header="$(printf '%-30s\t%s\n' 'NAME' 'DESCRIPTION')" \
--no-preview \
--delimiter='\t' \
--with-nth=2,3 \
| awk '{print $1}')
[[ -z "$profile_arn" ]] && return 1
echo "$profile_arn"
}

View File

@@ -3,7 +3,9 @@ aws-get-secret () {
if [[ -z "$secret_id" ]]; then
secret_id=$(aws secretsmanager list-secrets \
# build a tsv w/ name and date
| jq -r '.SecretList | sort_by(.Name) | .[] | [.Name,.LastChangedDate] | @tsv' \
# convert to tsv w/ full name, truncated name, date (no timestamp)
| awk -F'\t' '{
full_name = $1;
truncated_name = substr($1,1,30);
@@ -11,6 +13,7 @@ aws-get-secret () {
# Output: full_name (for return), truncated_name (for display), date (for display)
printf "%s\t%-30s\t%s\n", full_name, truncated_name, date_parts[1]
}' \
# select via fzf, fields 2 & 3
| fzf \
--header="$(printf '%-30s\t%s\n' 'NAME' 'LAST_CHANGED_DATE')" \
--delimiter='\t' \

View File

@@ -1,3 +1,3 @@
aws-logout() {
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_ENVIRONMENT
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_ENVIRONMENT AWS_PROFILE
}

View File

@@ -0,0 +1,30 @@
aws-sso-login() {
local profile="${1:-$AWS_PROFILE}"
if [[ -z "$profile" ]]; then
profile=$(aws configure list-profiles \
| fzf --height 40% --reverse --no-preview)
fi
if [[ -z "$profile" ]]; then
echo "Error: No profile provided or selected." >&2
return 1
fi
# Validate existing session; login if expired or missing
if ! aws sts get-caller-identity --profile "$profile" &>/dev/null; then
aws sso login --use-device-code --profile "$profile" || return 1
fi
# Export credentials to environment for third-party tools
local creds
creds=$(aws configure export-credentials --profile "$profile" --format env)
if [[ $? -eq 0 ]]; then
eval "$creds"
export AWS_PROFILE="$profile"
# echo "Environment configured for profile: $profile"
else
echo "Error: Failed to export credentials." >&2
return 1
fi
}

View File

@@ -48,9 +48,9 @@ zstyle ':vcs_info:git*' actionformats '%%S%r%%s:%{$fg[red]%}%b:%a%{$reset_color%
function set_prompt() {
if [[ -n "$AWS_ENVIRONMENT" ]]; then
if [[ -n "$AWS_PROFILE" ]]; then
aws_prompt="
%S%B$AWS_ENVIRONMENT%b%s
%S%B$AWS_PROFILE%b%s
"
else
aws_prompt=""
@@ -79,6 +79,11 @@ if [ -e /usr/bin/keychain ]; then
eval $(/usr/bin/keychain --eval -Q --quiet id_ed25519)
fi
# ctrl-x opens up the command line in $EDITOR
autoload -U edit-command-line
zle -N edit-command-line
bindkey "^X" edit-command-line
# direnv setup
whence -p direnv &>/dev/null && eval "$(direnv hook zsh)"