Files
config-bash/rc.d/prompt
T
xavier 7000bde368 feat(rc): Unify history tool selection (atuin/mcfly) with preference order
Merge rc.d/mcfly and rc.d/atuin into rc.d/history, following the same
preference-list + availability-check + fallback pattern as rc.d/prompt,
so only one history tool is active at a time instead of both being
initialized independently. Also normalize variable expansions in
rc.d/prompt to consistently use ${var} braces.
2026-08-22 00:19:55 +02:00

64 lines
1.5 KiB
Bash

#!/bin/bash
# Customize the prompt
# Indicate your preference order for prompt tools
# The first one found available will be used
MY_PROMPT_TOOLS="starship powerline-go"
for prompt in ${MY_PROMPT_TOOLS}; do
if (command -v "${prompt}" &>/dev/null); then
USE_PROMPT="${prompt}"
break
fi
done
case "${USE_PROMPT}" in
# https://starship.rs/
"starship")
if (command -v starship &>/dev/null); then
eval "$(starship init bash)"
else
echo "${USE_PROMPT} command not found"
fi
;;
# https://github.com/justjanne/powerline-go
"powerline-go")
if (command -v powerline-go &>/dev/null); then
function _update_ps1() {
PS1=$(powerline-go -jobs "$(jobs -p | wc -l)" -error $? -modules "ssh,host,wsl,user,cwd,direnv,venv,perms,git,jobs,exit,root" -modules-right "docker,docker-context,kube,terraform-workspace,termtitle" -newline)
}
if [ "${TERM}" != "linux" ]; then _prompt_command_add "_update_ps1"; fi
else
echo "${USE_PROMPT} command not found"
fi
;;
*)
# Default simple prompt
if [ "${UID}" -eq 0 ]; then
export PS1='\[\e[01;31m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
else
export PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
fi
;;
esac
# Limit the path to 3 levels
PROMPT_DIRTRIM=3
# Add a smiley at end of prompt showing last command status code
#smiley() {
# ret_val=$?
# if [ "$ret_val" = "0" ]
# then
# echo -e "\e[01;32m:)\e[0m"
# else
# echo -e "\e[01;31m:(\e[0m"
# fi
#}
#export PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '"\$(smiley) "