updated shed prompt code

This commit is contained in:
2026-02-25 01:57:02 -05:00
parent 1223b85aa4
commit 05fd14d48f
2 changed files with 35 additions and 17 deletions

6
flake.lock generated
View File

@@ -964,11 +964,11 @@
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_8"
}, },
"locked": { "locked": {
"lastModified": 1771975922, "lastModified": 1771999992,
"narHash": "sha256-y6mxBHd+yF3il/ar9hBC34zlcKzMLeIxWCA3UIRhuSw=", "narHash": "sha256-nBntlK2HHywIwd2tC3jRTS5n8cekjn/e1Ci1DpYMe1E=",
"owner": "km-clay", "owner": "km-clay",
"repo": "shed", "repo": "shed",
"rev": "d14029f5a297e21ede860003229a83d710950af0", "rev": "9c8a5713db1b1d9783d78d66551eb8a8f81304ae",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -8,6 +8,11 @@ in
programs.shed = { programs.shed = {
settings.extraPreConfig = '' settings.extraPreConfig = ''
prompt_topline() { prompt_topline() {
local user_and_host="\e[0m\e[1m$USER\e[1;36m@\e[1;31m$HOST\e[0m"
echo -n "\e[1;34m $user_and_host\n"
}
prompt_stat_line() {
local last_exit_code="$?" local last_exit_code="$?"
local last_cmd_status local last_cmd_status
local last_cmd_runtime local last_cmd_runtime
@@ -16,18 +21,17 @@ in
else else
last_cmd_status="\e[1;31m\e[0m" last_cmd_status="\e[1;31m\e[0m"
fi fi
local user_and_host="\e[1m$USER\e[1;36m@\e[1;31m$HOST\e[0m"
local last_runtime_raw="$(echo -p "\t")" local last_runtime_raw="$(echo -p "\t")"
if [ -z "$last_runtime_raw" ]; then if [ -z "$last_runtime_raw" ]; then
last_cmd_runtime="" return 0
last_cmd_status=""
else else
last_cmd_runtime="\e[1;38;2;249;226;175m󰔛 $(echo -p "\T")\e[0m" last_cmd_runtime="\e[1;38;2;249;226;175m󰔛 $(echo -p "\T")\e[0m"
fi fi
echo -n "$user_and_host $last_cmd_runtime $last_cmd_status\n"
echo -n "\e[1;34m $last_cmd_runtime ($last_cmd_status)\n"
} }
prompt_midline() { prompt_git_line() {
git rev-parse --is-inside-work-tree > /dev/null 2>&1 || return git rev-parse --is-inside-work-tree > /dev/null 2>&1 || return
local gitsigns local gitsigns
@@ -48,21 +52,35 @@ in
if [ -n "$gitsigns" ]; then if [ -n "$gitsigns" ]; then
gitsigns="\e[1;31m[$gitsigns]" gitsigns="\e[1;31m[$gitsigns]"
fi fi
echo -n "\e[0mon \e[1;35m ''${branch}$gitsigns\e[0m\n" echo -n "\e[1;34m \e[1;35m ''${branch}$gitsigns\e[0m\n"
fi fi
} }
prompt_botline() { prompt_jobs_line() {
echo -p "\e[1;36m\W\e[1;32m/" local job_count="$(echo -p '\j')"
if [ "$job_count" -gt 0 ]; then
echo -n "\e[1;34m \e[1;33m󰒓 $job_count job(s) running\e[0m\n"
fi
}
prompt_pwd_line() {
echo -p "\e[1;34m \e[1;36m\W\e[1;32m/"
}
prompt_dollar_line() {
local dollar="$(echo -p "\$ ")"
local dollar="$(echo -e "\e[1;32m$dollar\e[0m")"
echo -n "\e[1;34m $dollar "
} }
prompt() { prompt() {
local top="$(prompt_topline)" local statline="$(prompt_stat_line)"
local mid="$(prompt_midline)" local topline="$(prompt_topline)"
local bot="$(prompt_botline)" local gitline="$(prompt_git_line)"
local dollar="$(echo -p "\$ ")" local jobsline="$(prompt_jobs_line)"
local dollar="$(echo -e "\e[1;32m$dollar\e[0m")" local pwdline="$(prompt_pwd_line)"
local prompt="$top$mid$bot\n$dollar" local dollarline="$(prompt_dollar_line)"
local prompt="$topline$statline$gitline$jobsline$pwdline\n$dollarline"
echo -en "$prompt" echo -en "$prompt"
} }