ohmyzsh/themes/jijeesh.zsh-theme
2024-05-11 21:41:10 +05:30

71 lines
No EOL
2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vim:ft=zsh ts=2 sw=2 sts=2
#
# jijeesh Theme - https://github.com/jijeesh/kubectl-aliases/blob/master/README.md
# A Powerline-inspired theme for ZSH
#
# # README
#
# In order for this theme to render correctly, you will need a
# [Powerline-patched font](https://github.com/Lokaltog/powerline-fonts).
# Return code indicator
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
# Function to determine system emoji
function toon {
case "$(uname -s)" in
"Darwin") echo -n "🍎" ;; # macOS
"Linux") echo -n "🐧" ;; # Linux (Ubuntu)
*) echo -n "♔" ;; # Default emoji for unknown OS
esac
}
# Function to display Kubernetes symbol
function k8sSymbol {
echo -n " ☸ "
}
# Function to display Git symbol
function gitSymbol {
echo -n " \uE0A0 "
}
# Function to get Kubernetes prompt info
function kubect_prompt_info() {
local kubectl_prompt="$(kubectl config current-context)"
local kgnc_prompt="$(kubectl config view --minify --output 'jsonpath={..namespace}')"
echo -n "${ZSH_THEME_KUBECTL_PROMPT_PREFIX}${kgnc_prompt}${ZSH_THEME_KUBECTL_PROMPT_SUFFIX}"
}
# User and host prompt
if [[ $UID -eq 0 ]]; then
local user_host='%{$terminfo[bold]$fg[red]%}%n@%m %{$reset_color%}'
local user_symbol='#'
else
local user_host='%{$terminfo[bold]$fg[green]%}%n %{$reset_color%}'
local user_symbol='$'
fi
# Kubernetes symbol display if ~/.kube directory exists
if [ -d ~/.kube ]; then
local k8s_symbol='%{$fg_bold[blue]%}$(k8sSymbol) $(kubect_prompt_info) %{$reset_color%}'
fi
# Current directory prompt
local current_dir='%{$fg_bold[red]%}$(toon)% %{$terminfo[bold]$fg_bold[yellow]%}%~ %{$reset_color%}'
# Git branch prompt
local git_branch='$(git_prompt_info)'
# Main prompt setup
PROMPT="╭─${user_host}${k8s_symbol}${git_branch}
${current_dir}
╰─%B${user_symbol}%b "
# Right prompt setup
RPROMPT="%B${return_code}%b"
# Git prompt configuration
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg_bold[red]%}$(gitSymbol)%{$reset_color%}%{$fg_bold[red]%} "
ZSH_THEME_GIT_PROMPT_SUFFIX=" %{$reset_color%}"