diff --git a/.claude/settings.json b/.claude/settings.json index 8fd958c..5aca21f 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -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" } } diff --git a/.claude/tools/status_line.sh b/.claude/tools/status_line.sh new file mode 100755 index 0000000..f893a24 --- /dev/null +++ b/.claude/tools/status_line.sh @@ -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}%" \ No newline at end of file