mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-26 02:12:33 +01:00
Add maser theme
This commit is contained in:
parent
9f46eafae0
commit
4603dc6eea
1 changed files with 65 additions and 0 deletions
65
themes/maser.zsh-theme
Normal file
65
themes/maser.zsh-theme
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# theme based on alanpeabody and my old Bash prompt
|
||||
|
||||
# PWD, truncated to 20 characters if it is too long
|
||||
function collapse_pwd {
|
||||
local pwd_truncation_length=20
|
||||
local dir=$(pwd)
|
||||
|
||||
if $(echo $dir | grep "^$HOME" >>/dev/null)
|
||||
then
|
||||
dir="~$(echo $dir | awk -F$HOME '{print $2}')"
|
||||
fi
|
||||
|
||||
if [ $(echo -n $dir | wc -c | tr -d " ") -gt $pwd_truncation_length ]
|
||||
then
|
||||
dir="…${dir[-$pwd_truncation_length,-1]}"
|
||||
fi
|
||||
echo -n $dir
|
||||
}
|
||||
|
||||
# compares HEAD to its remote and prints strings like ahead(2), behind(1) and diverged(1 2)
|
||||
function git_remote_information {
|
||||
|
||||
local git_status="$(git status 2>/dev/null)"
|
||||
|
||||
if [ -n "$git_status" ] ; then
|
||||
local remote_information
|
||||
|
||||
if grep -q "ahead of" <<< $git_status ; then
|
||||
local n_commits="$(egrep -o "by [0-9]+ commit" <<< $git_status | awk '{ print $2 }')"
|
||||
remote_information=" ahead($n_commits)"
|
||||
fi
|
||||
|
||||
if grep -q "have diverged" <<< $git_status ; then
|
||||
local n_commits="$(egrep -o "have [0-9]+ and [0-9]+ different commit" <<< $git_status | awk '{ print $2,$4 }')"
|
||||
remote_information=" diverged($n_commits)"
|
||||
fi
|
||||
|
||||
if grep -q "Your branch is behind" <<< $git_status ; then
|
||||
local n_commits="$(egrep -o "by [0-9]+ commit" <<< $git_status | awk '{ print $2 }')"
|
||||
remote_information=" behind($n_commits)"
|
||||
fi
|
||||
fi
|
||||
echo $remote_information
|
||||
}
|
||||
|
||||
local pwd='%{$fg[white]%}$(collapse_pwd)%{$reset_color%}'
|
||||
|
||||
local return_code='%(?..%{$fg[red]%}%? ↵%{$reset_color%})'
|
||||
local git_information='$(git_prompt_status)%{$reset_color%}$(git_prompt_info)%{$reset_color%}%{$fg[cyan]%}$(git_remote_information)%{$reset_color%}'
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY=""
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%} ✚"
|
||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[blue]%} ✹"
|
||||
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✖"
|
||||
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[magenta]%} ➜"
|
||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[yellow]%} ═"
|
||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
|
||||
|
||||
PROMPT="${pwd} ➤ "
|
||||
RPROMPT="${return_code} ${git_information}"
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue