SCM_THEME_PROMPT_PREFIX="" SCM_THEME_PROMPT_SUFFIX="" SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗${normal}" SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}" SCM_GIT_CHAR="${bold_green}±${normal}" SCM_SVN_CHAR="${bold_cyan}⑆${normal}" SCM_HG_CHAR="${bold_red}☿${normal}" case $TERM in xterm*) TITLEBAR="\[\033]0;\w\007\]" ;; *) TITLEBAR="" ;; esac PS3=">> " is_vim_shell() { if [ ! -z "$VIMRUNTIME" ] then echo "[${cyan}vim shell${normal}]" fi } modern_scm_prompt() { CHAR=$(scm_char) if [ $CHAR = $SCM_NONE_CHAR ] then return else echo "[$(scm_char)][$(scm_prompt_info)]" fi } detect_venv() { python_venv="" # Detect python venv if [[ -n "${CONDA_DEFAULT_ENV}" ]]; then python_venv="($PYTHON_VENV_CHAR${CONDA_DEFAULT_ENV})" elif [[ -n "${VIRTUAL_ENV}" ]]; then python_venv="($PYTHON_VENV_CHAR$(basename "${VIRTUAL_ENV}"))" fi } prompt() { detect_venv PS1="${TITLEBAR}┌─$(modern_scm_prompt)[${cyan}\u${normal}][${cyan}\w${normal}]$(is_vim_shell) └─▪ ${python_venv}${dir_color} " } PS2="└─▪ " safe_append_prompt_command prompt