配置: 添加 Claude Code 自定义状态栏

- 新增 status_line.sh 脚本,自定义状态栏显示格式
- 配置 CLAUDE_CODE_NO_FLICKER 禁止状态栏闪烁
- 状态栏显示:版本、模型、上下文使用百分比
This commit is contained in:
2026-04-14 08:26:42 +08:00
parent c85a5be80a
commit 1d4041c8b8
2 changed files with 35 additions and 1 deletions

View File

@@ -1,7 +1,8 @@
{
"env": {
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75"
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75",
"CLAUDE_CODE_NO_FLICKER": "1"
},
"hooks": {
"UserPromptSubmit": [
@@ -14,5 +15,9 @@
]
}
]
},
"statusLine": {
"type": "command",
"command": "/data/git/gitea/szis/isos/tech/.claude/tools/status_line.sh"
}
}

29
.claude/tools/status_line.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/bin/bash
# Read JSON data that Claude Code sends to stdin
input=$(cat)
# Extract fields using jq
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
# The "// 0" provides a fallback if the field is null
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
V=$(echo "$input" | jq -r '.version')
BRANCH=""
if command -v jj >/dev/null 2>&1 && jj repo root >/dev/null 2>&1; then
BRANCH="🌿 $(jj log -r '@-' -T 'bookmarks' --no-graph 2>/dev/null)"
elif git rev-parse --git-dir >/dev/null 2>&1; then
BRANCH="🌿 $(git branch --show-current 2>/dev/null)"
fi
REMOTE=""
if command -v jj >/dev/null 2>&1 && jj repo root >/dev/null 2>&1; then
REMOTE="🌐 $(jj git remote list 2>/dev/null | head -1 | awk '{print $2}')"
elif git rev-parse --git-dir >/dev/null 2>&1; then
REMOTE="🌐 $(git remote get-url origin 2>/dev/null)"
fi
# echo "v$V | $MODEL | ${PCT}% context | 📁 ${DIR##*/} | $BRANCH $REMOTE"
echo "版本v$V | 模型:$MODEL | 上下文:${PCT}%"