diff --git a/claude/scripts/statusline.sh b/claude/scripts/statusline.sh new file mode 100644 index 0000000..5e68c3b --- /dev/null +++ b/claude/scripts/statusline.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Read the JSON input from stdin +input=$(cat) + +# Pass the input to both commands and concatenate their outputs +echo "$input" | ccusage statusline +echo "$input" | ccstatusline diff --git a/claude/settings.json b/claude/settings.json index 566876b..137f4a1 100644 --- a/claude/settings.json +++ b/claude/settings.json @@ -1,7 +1,8 @@ { - "model": "opusplan", - "statusLine": { - "type": "command", - "command": "printf '%s | %s | %s' \"$(ccusage statusline | tr -d '\\n')\" \"$(pwd | sed \"s|$HOME|~|\" | sed 's|.*/\\([^/]*/[^/]*\\)$|\\1|')\" \"$(git status --porcelain 2>/dev/null | awk 'BEGIN{staged=0; modified=0; untracked=0} /^M/{staged++} /^.M/{modified++} /^\\?\\?/{untracked++} END{if(staged+modified+untracked>0) printf \"git: %s%s%s\", (staged>0?staged\"s\":\"\"),(modified>0?modified\"m\":\"\"),(untracked>0?untracked\"u\":\"\"); else printf \"git: clean\"}' || printf 'not a git repo')\"" - } -} \ No newline at end of file + "model": "opusplan", + "statusLine": { + "type": "command", + "command": "bash ~/.config/claude/scripts/statusline.sh", + "padding": 0 + } +}