banana zsh prompt > starship

This commit is contained in:
Vitor Gonçalves 2024-01-24 21:04:24 -03:00
parent 693c77255b
commit a7d5062653
Signed by: vitorg
GPG Key ID: B90BF113DF56EB41
3 changed files with 34 additions and 64 deletions

32
.config/starship.toml Normal file
View File

@ -0,0 +1,32 @@
add_newline = false
format = "$username[@](bold green)$hostname $directory$git_branch$git_status$character"
right_format = "$cmd_duration$time"
[username]
show_always = true
format = "[$user](bold yellow)"
[hostname]
ssh_only = false
format = "[$hostname](bold blue)"
[git_branch]
format = "[$symbol$branch(:$remote_branch)]($style)"
[git_status]
format = "[$all_status]($style) "
[character]
success_symbol = '[➜](bold green)'
error_symbol = '[✗](bold red)'
# right side
[cmd_duration]
min_time = 200
format = "took [$duration](underline bold yellow) "
[time]
format = "[$time](fg:bold purple)"
disabled = false

View File

@ -21,7 +21,8 @@ source "$ZPLUGINS/zsh-completions/zsh-completions.plugin.zsh"
source "$ZPLUGINS/zsh-autosuggestions/zsh-autosuggestions.zsh"
source "$ZPLUGINS/zsh-bd/bd.zsh"
source "$ZPLUGINS/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
source "$ZPLUGINS/banana.zsh-theme"
eval "$(starship init zsh)"
HISTFILE="$HOME/.local/share/zsh/histfile"
HISTSIZE=110000

View File

@ -1,63 +0,0 @@
function __git_prompt_git() {
GIT_OPTIONAL_LOCKS=0 command git "$@"
}
function parse_git_dirty() {
local STATUS
local -a FLAGS
FLAGS=('--porcelain')
if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
if [[ "${DISABLE_UNTRACKED_FILES_DIRTY:-}" == "true" ]]; then
FLAGS+='--untracked-files=no'
fi
case "${GIT_STATUS_IGNORE_SUBMODULES:-}" in
git)
# let git decide (this respects per-repo config in .gitmodules)
;;
*)
# if unset: ignore dirty submodules
# other values are passed to --ignore-submodules
FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}"
;;
esac
STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1)
fi
if [[ -n $STATUS ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
fi
}
function git_prompt_info() {
# If we are on a folder not tracked by git, get out.
# Otherwise, check for hide-info at global and local repository level
if ! __git_prompt_git rev-parse --git-dir &> /dev/null \
|| [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then
return 0
fi
local ref
ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \
|| ref=$(__git_prompt_git describe --tags --exact-match HEAD 2> /dev/null) \
|| ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) \
|| return 0
# Use global ZSH_THEME_GIT_SHOW_UPSTREAM=1 for including upstream remote info
local upstream
if (( ${+ZSH_THEME_GIT_SHOW_UPSTREAM} )); then
upstream=$(__git_prompt_git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null) \
&& upstream=" -> ${upstream}"
fi
echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref:gs/%/%%}${upstream:gs/%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
}
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
local host_status="$USER@${:-%m}"
PROMPT='${ret_status}${host_status} %{$fg[cyan]%}%~%{$reset_color%} $(git_prompt_info)'
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"