74 lines
1.7 KiB
Bash
74 lines
1.7 KiB
Bash
PS1=
|
|
RPROMPT=
|
|
ZSH_THEME_GIT_PROMPT_PREFIX=""
|
|
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
|
ZSH_THEME_GIT_PROMPT_SEPARATOR=" "
|
|
ZSH_THEME_DEBLAN_USE_GIT=${ZSH_THEME_DEBLAN_USE_GIT:-1}
|
|
|
|
function deblan_precmd() {
|
|
local exit_code=$?
|
|
local datetime="%T"
|
|
local current_directory="%~"
|
|
local final_char="%%"
|
|
local is_privilegied=${(%):-%(\!.1.0)}
|
|
local prompt_width=
|
|
local prompt_content=
|
|
local term_width=
|
|
local rprompt_content=
|
|
|
|
PS1=
|
|
RPROMPT=
|
|
|
|
prompt_content="$(deblan_last_status)"
|
|
prompt_content="$prompt_content %{$fg_bold[cyan]%}${datetime}"
|
|
|
|
if [ $is_privilegied -eq 1 ]; then
|
|
prompt_content="$prompt_content %{$fg_bold[red]%}%n@%m"
|
|
final_char="%{$fg_bold[red]%}#"
|
|
else
|
|
prompt_content="$prompt_content %{$fg_bold[white]%}%n@%m"
|
|
fi
|
|
|
|
prompt_content="$prompt_content %{$fg_bold[white]%}$current_directory"
|
|
prompt_width="${#${(%):-$prompt_content}}"
|
|
term_width=$(tput cols)
|
|
|
|
if [[ "$prompt_width*1.3" -gt $term_width ]]; then
|
|
prompt_content="$prompt_content
|
|
"
|
|
else
|
|
prompt_content="$prompt_content "
|
|
fi
|
|
|
|
prompt_content="$prompt_content%{$fg_bold[yellow]%}$final_char"
|
|
prompt_content="$prompt_content %{$reset_color%}"
|
|
|
|
if [ $ZSH_THEME_DEBLAN_USE_GIT -eq 1 ]; then
|
|
if (command -v git_super_status >/dev/null); then
|
|
rprompt_content='%{$fg[$NCOLOR]%} $(git_super_status)%{$reset_color%}'
|
|
fi
|
|
fi
|
|
|
|
PS1="$prompt_content"
|
|
RPROMPT="$rprompt_content"
|
|
}
|
|
|
|
function deblan_last_status() {
|
|
local value=
|
|
|
|
if [ $exit_code -eq 0 ]; then
|
|
value="%{$fg_bold[green]%}●"
|
|
elif [ $exit_code -eq 1 ]; then
|
|
value="%{$fg_bold[red]%}●"
|
|
elif [ $exit_code -eq 130 ]; then
|
|
value="%{$fg_bold[grey]%}●"
|
|
else
|
|
value="%{$fg_bold[yellow]%}● [$exit_code]"
|
|
fi
|
|
|
|
echo -n "$value"
|
|
}
|
|
|
|
setopt prompt_subst
|
|
autoload -U add-zsh-hook
|
|
add-zsh-hook precmd deblan_precmd |