51 lines
1.8 KiB
Bash
51 lines
1.8 KiB
Bash
# pSy's zshell prompt
|
|
# zsh theme requires 256 color enabled terminal
|
|
# based on sporty_256 and fishy
|
|
|
|
_collapsed_path() {
|
|
#TODO: collapse path elements until the path is short enough
|
|
#TODO eg: "/foo/bar/baz/quux/quarz" becomes "/f/b/baz/quux/quarz" if it still fits
|
|
#TODO or "/f/b/b/q/quarz" in the 2nd shortest form, "quarz" in the shortest
|
|
|
|
# http://lavica.fesb.hr/cgi-bin/info2html?(zsh)The%20zsh/pcre%20Module
|
|
#echo $(pwd | perl -pe "s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g")
|
|
local TERMWIDTH
|
|
(( TERMWIDTH = ${COLUMNS} - 1 ))
|
|
|
|
PR_FILLBAR=""
|
|
PR_PWDLEN=""
|
|
PR_GIT="$(git_prompt_info)"
|
|
|
|
local promptsize=${#${(%):-(%n@%m)--}}
|
|
local pwdsize=${#${(%):-%~}}
|
|
local gitinfosize=${#${(%):-$PR_GIT}}
|
|
|
|
if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then
|
|
((PR_PWDLEN=$TERMWIDTH - $promptsize - $gitinfosize))
|
|
fi
|
|
|
|
echo "%$PR_PWDLEN<...<%~%<<"
|
|
}
|
|
|
|
|
|
RPROMPT='$(git_prompt_info) %F{208}$(_collapsed_path)%f%{$reset_color%}'
|
|
PROMPT='%(?..%F{124}·%?·)%F{208}%n%f%{$fg[white]%}@%F{039}%m%f%{$reset_color%} %{$fg[white]%}%# %{$reset_color%}'
|
|
|
|
#ZSH_THEME_GIT_PROMPT_PREFIX="%F{154}±|%f%F{124}"
|
|
ZSH_THEME_GIT_PROMPT_PREFIX="%F{154}%f%F{124}"
|
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
|
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}%B✘%b%F{154}"
|
|
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%F{154}"
|
|
|
|
#TODO: think about a nicer usage of these…
|
|
#ZSH_THEME_GIT_PROMPT_PREFIX=" "
|
|
#ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
|
#ZSH_THEME_GIT_PROMPT_DIRTY=""
|
|
#ZSH_THEME_GIT_PROMPT_CLEAN=""
|
|
#
|
|
#ZSH_THEME_GIT_PROMPT_ADDED="%{$fg_bold[green]%}+"
|
|
#ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[blue]%}!"
|
|
#ZSH_THEME_GIT_PROMPT_DELETED="%{$fg_bold[red]%}-"
|
|
#ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg_bold[magenta]%}>"
|
|
#ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[yellow]%}#"
|
|
#ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[cyan]%}?"
|