summaryrefslogtreecommitdiffstats
path: root/.zsh/rc/15prompt
blob: a897e1994dd8c29e3a01fc4159cb2e6f81b4ce79 (plain)
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
#--------------------
# Terminal title
#--------------------
# also found somewhere
prompt_eof_setup() {
  # preexec() is run after you press enter on your command but before the command is run.
  preexec() {
    # define screen/terminal title with the current command (http://aperiodic.net/phil/prompt/)
    case $TERM in
      rxvt-unicode*)
        printf '\33]2;%s\007' $1
      ;;
      screen*)
        local CMD=${1[(wr)^(*=*|sudo|ssh|exec|-*)]}
        printf '\ek%s\e\\' $CMD;;
    esac
  }
}

prompt_eof_setup "$@"

EXITCODE="%(?..(%?%1) )"

# function to show the current git branch in prompt
parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
} 

#--------------------
# Prompt
#--------------------
# necessary if you want to use functions in the prompt
# without this they wouldn't be run again
precmd () {
# this has to be on the edge or you have some spaces in the prompt 
# if you have any workaround please tell
if [[ $UID != 0 ]]; then
  local username_color=$fg_blue
else
  local username_color=$fg_red
fi
local host_color=$fg_light_green
local path_color=$fg_light_blue
local gitbranch_color=$fg_purple
local exitcode_color=$fg_red
PROMPT="${username_color}$USERNAME${fg_no_colour}@${host_color}%m${fg_no_colour}\
:${path_color}%~${fg_no_colour} ${gitbranch_color}$(parse_git_branch)${fg_no_colour}
${exitcode_color}$EXITCODE${fg_no_colour}> " 
}

## Spelling prompt
SPROMPT='zsh: correct '%R' to '%r' ? ([Y]es/[N]o/[E]dit/[A]bort) '

# vim: set ft=zsh: