Prompt: Properly detect tmux, mosh and screen; not only ssh
[abe:zshrc.git] / zsh.d / 10-prompt
1 # -*- sh -*-
2 if (( EUID != 0 )); then
3     USERBEGIN="%B"
4     USEREND="%b"
5     BLOCKBEGIN="%S"
6     BLOCKEND="%s"
7 else
8     USERBEGIN="%{\e[31m%}"
9     USEREND="%{\e[m%}"
10     BLOCKBEGIN="%B"
11     BLOCKEND="%b"
12 fi
13
14 DISTRIBUTION_CODENAME=`lsb_release -cs`
15 case $TERM in
16     *screen*)
17         if [[ -n "$TMUX" ]]; then
18             _SHELL_ACCESS=tmux
19         else
20             _SHELL_ACCESS=screen
21         fi
22         ;;
23 esac
24
25 if [[ -z "$_SHELL_ACCESS" ]]; then
26     if [[ -n "$SSH_CLIENT" ]]; then
27         _IS_MOSH=`ps uxw | awk '$2=='$PPID' && $11~/mosh/ {print}'`
28         if [[ -n "$_IS_MOSH" ]]; then
29             _SHELL_ACCESS=mosh
30         else
31             _SHELL_ACCESS=ssh
32         fi
33     fi
34 fi
35
36 # $ZSH_VERSION
37 PROMPT="%S!%h Z%i %(?..%{\e[31m%})?%?%(?..%{\e[m%}%S) L%L%s ${_SHELL_ACCESS:+"%{\e[36m%}$_SHELL_ACCESS "}%{\e[m%}${debian_chroot:+($debian_chroot)}${USERBEGIN}%n@%m${USEREND}%B:%~%b (%y %U%N ${ZSH_VERSION}%u ${DISTRIBUTION_CODENAME}) %B%* %b%<<"'${VCS_INFO_message_0_}${vcs_info_msg_0_}'$'\n'"%B%23<[…]<%~%<< %(!.#.→)%b "
38
39 #PROMPT="${RED}${EXITCODE}${WHITE}${debian_chroot:+($debian_chroot)}${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< "'${VCS_INFO_message_0_}'"%# "