-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy paththeme.sh
More file actions
54 lines (47 loc) · 1.55 KB
/
theme.sh
File metadata and controls
54 lines (47 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
_fishy_collapsed_wd() {
local pwd_path="${PWD/#$HOME/~}"
echo "$pwd_path"
}
_show_git_status() {
local repo_name=$(git_repo_name)
if [[ -n "$repo_name" ]]; then
echo "$(git_prompt_status)%{$fg_bold[blue]%} "
fi
}
git_prompt_info() {
local ref
ref=$(git symbolic-ref HEAD 2>/dev/null) || \
ref=$(git rev-parse --short HEAD 2>/dev/null) || return
echo "${ref#refs/heads/}"
}
git_prompt_status() {
if git rev-parse --is-inside-work-tree &>/dev/null; then
local status
status=$(git status --porcelain 2>/dev/null)
if [[ -n "$status" ]]; then
echo "%{$fg_bold[red]%}✗"
else
echo "%{$fg_bold[green]%}✓"
fi
fi
}
git_repo_name() {
if git rev-parse --is-inside-work-tree &>/dev/null; then
basename "$(git rev-parse --show-toplevel 2>/dev/null)"
fi
}
# Theme settings
PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT+='%{$fg[cyan]%}$(_fishy_collapsed_wd)%{$reset_color%} '
PROMPT+='$(git_prompt_info)$(_show_git_status)%{$fg_bold[magenta]%}»%{$reset_color%} '
# Git theme settings
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[white]%}"
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[red]%}?"