forked from misc/zsh-config
Add fat0troll theme
The only difference between pztrn and fat0troll themes is brackets color in non-SSH mode: fat0troll theme uses same brackets on SSH and non-SSH, so they won't disappear in common dark themed shell.
This commit is contained in:
parent
997a59ff96
commit
3bf09084da
98
zsh/prompts/fat0troll.zsh
Normal file
98
zsh/prompts/fat0troll.zsh
Normal file
@ -0,0 +1,98 @@
|
||||
# pztrn prompt theme
|
||||
autoload -U add-zsh-hook
|
||||
|
||||
# Common vars array.
|
||||
declare -A vars
|
||||
# Prompt parts.
|
||||
declare p_date p_tty p_plat p_userpwd p_shlvlhist p_rc p_end p_win p_path p_gitinfo
|
||||
|
||||
prompt_fat0troll_help () {
|
||||
cat <<'EOF'
|
||||
|
||||
prompt pztrn
|
||||
|
||||
There is no colors to define
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
prompt_fat0troll_setup () {
|
||||
emulate -L zsh
|
||||
precmd_functions=(${precmd_functions[@]} "prompt_fat0troll_gitinfo" "prompt_fat0troll_createprompt")
|
||||
vars['brackets_start']="%{$fg[yellow]%}[%{$reset_color%}"
|
||||
vars['brackets_end']="%{$fg[yellow]%}]%{$reset_color%}"
|
||||
|
||||
# Session-dependend colorizing.
|
||||
# Local will be black, remote - yellow.
|
||||
if [[ -n $SSH_TTY ]]; then
|
||||
vars['console']="$vars['brackets_start']SSH$vars['brackets_end']"
|
||||
vars['default_color']="%{$fg[cyan]%}"
|
||||
else
|
||||
vars['console']=""
|
||||
vars['default_color']="%{$fg[green]%}"
|
||||
fi
|
||||
|
||||
p_date="$vars['brackets_start']$vars['default_color']%D{%a %Y/%m/%d %R}$vars['brackets_end']"
|
||||
p_tty="$vars['brackets_start']$vars['default_color']%l$vars['brackets_end']"
|
||||
p_plat="$vars['brackets_start']$vars['default_color']$(uname -r)$vars['brackets_end']"
|
||||
|
||||
[[ -n "$WINDOW" ]] && p_win="$WINDOW"
|
||||
|
||||
if [[ "$USER" == "root" ]]; then
|
||||
vars['usercolor']="%{$fg[red]%}"
|
||||
else
|
||||
vars['usercolor']="%{$fg[blue]%}"
|
||||
fi
|
||||
|
||||
p_hostname=$(hostname -f)
|
||||
p_userpwd="$vars['brackets_start']$vars['usercolor']%n$reset_color@%{$fg[magenta]%}$p_hostname$vars['brackets_end']"
|
||||
|
||||
p_shlvlhist="$vars['brackets_start']$vars['default_color']%B%h%b$vars['brackets_end']"
|
||||
p_rc="%(?..$vars['brackets_start']$fg[red]%?%1v$vars['brackets_end'])"
|
||||
p_end="$vars['usercolor']%#%{$reset_color%} "
|
||||
|
||||
p_path="$vars['brackets_start']$vars['default_color'] %d $vars['brackets_end']"
|
||||
|
||||
# Initial prompt creation. On every cd it will be recreated with
|
||||
# prompt_pztrn_createprompt function.
|
||||
PROMPT="$p_date$p_tty$p_plat$p_userpwd$p_shlvlhist$p_rc$p_gitinfo
|
||||
$vars['console']$p_path $p_end"
|
||||
RPROMPT="$p_date$p_tty$p_plat$p_userpwd$p_shlvlhist$p_rc$p_gitinfo
|
||||
$vars['console']$p_path $p_end"
|
||||
PS2='%(4_.\.)%3_> %E'
|
||||
|
||||
watch=all
|
||||
logcheck=5
|
||||
WATCHFMT="$fg[green]%n$reset_color from $fg[magenta]%M$reset_color has $fg[green]%a$reset_color (%l) at %T %W"
|
||||
|
||||
}
|
||||
|
||||
prompt_fat0troll_gitinfo()
|
||||
{
|
||||
# Git repository information.
|
||||
# Depends on 'gitinfo' application.
|
||||
gitinfo_present=`declare -f gitinfo_check`
|
||||
if [ $gitinfo_present ]; then
|
||||
gitinfo_check
|
||||
#echo $?
|
||||
if [[ $? -eq 0 ]]; then
|
||||
p_gitinfo_branch="$vars['brackets_start']$vars['usercolor']${GITINFO_BRANCH}$reset_color$vars['brackets_end']"
|
||||
p_gitinfo_commit="$vars['brackets_start']%{$fg[magenta]%}${GITINFO_COMMIT_SHORTID}$reset_color (%{$fg[cyan]%}${GITINFO_COMMIT_COUNT}$reset_color)$vars['brackets_end']"
|
||||
p_gitinfo_remotes="$vars['brackets_start']%{$fg[green]%}${GITINFO_REMOTES} remote(s)$reset_color$vars['brackets_end']"
|
||||
p_gitinfo_files="$vars['brackets_start']%{$fg[green]%}${GITINFO_NEW_FILES}$reset_color new, %{$fg[yellow]%}${GITINFO_MODIFIED_FILES}$reset_color modified, %{$fg[red]%}${GITINFO_DELETED_FILES}$reset_color deleted, %{$fg[gray]%}${GITINFO_UNTRACKED_COUNT}$reset_color untracked$vars['brackets_end']"
|
||||
p_gitinfo=$'\n'"$p_gitinfo_branch$p_gitinfo_commit$p_gitinfo_files$p_gitinfo_remotes"
|
||||
else
|
||||
p_gitinfo=""
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
prompt_fat0troll_createprompt()
|
||||
{
|
||||
PROMPT="$p_date$p_tty$p_plat$p_userpwd$p_shlvlhist$p_rc$p_gitinfo
|
||||
$vars['console']$p_path $p_end"
|
||||
RPROMPT="$p_date$p_tty$p_plat$p_userpwd$p_shlvlhist$p_rc$p_gitinfo
|
||||
$vars['console']$p_path $p_end"
|
||||
}
|
||||
|
||||
prompt_fat0troll_setup
|
Loading…
Reference in New Issue
Block a user