#!/bin/bash # Theme inspired on: # - Ronacher's dotfiles (mitsuhikos) - http://github.com/mitsuhiko/dotfiles/tree/master/bash/ # - Glenbot - http://theglenbot.com/custom-bash-shell-for-development/ # - My extravagant zsh - http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ # - Monokai colors - http://monokai.nl/blog/2006/07/15/textmate-color-theme/ # - Docs of Bash - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html # ----------------------------------------------------------------- COLOR CONF D_DEFAULT_COLOR='\[${normal}\]' D_INTERMEDIATE_COLOR='\[${white}\]' D_USER_COLOR='\[${purple}\]' D_SUPERUSER_COLOR='\[${red}\]' D_MACHINE_COLOR='\[${cyan}\]' D_DIR_COLOR='\[${green}\]' D_SCM_COLOR='\[${yellow}\]' D_BRANCH_COLOR='\[${yellow}\]' D_CHANGES_COLOR='\[${white}\]' D_CMDFAIL_COLOR='\[${red}\]' D_VIMSHELL_COLOR='\[${cyan}\]' # ------------------------------------------------------------------ FUNCTIONS case $TERM in xterm*) TITLEBAR="\[\033]0;\w\007\]" ;; *) TITLEBAR="" ;; esac is_vim_shell() { if [ ! -z "$VIMRUNTIME" ] then echo "${D_INTERMEDIATE_COLOR}on ${D_VIMSHELL_COLOR}\ vim shell${D_DEFAULT_COLOR} " fi } demula_battery_charge() { if [ ! -z "$(battery_charge)" ] then battery_charge fi } mitsuhikos_lastcommandfailed() { code=$? if [ $code != 0 ]; then echo "${D_INTERMEDIATE_COLOR}exited ${D_CMDFAIL_COLOR}\ $code ${D_DEFAULT_COLOR}" fi } # vcprompt for scm instead of bash_it default # https://github.com/xvzf/vcprompt demula_vcprompt() { local D_VCPROMPT_EXECUTABLE=~/.vcprompt/bin/vcprompt local D_VCPROMPT_FORMAT="on ${D_SCM_COLOR}%s${D_INTERMEDIATE_COLOR}:\ ${D_BRANCH_COLOR}%b %r ${D_CHANGES_COLOR}%m%u ${D_DEFAULT_COLOR}" local D_VCPROMPT_OUTPUT=$($D_VCPROMPT_EXECUTABLE -f "$D_VCPROMPT_FORMAT") echo $D_VCPROMPT_OUTPUT } # -------------------------------------------------------------- PROMPT OUTPUT prompt() { local SAVE_CURSOR='\[\033[s\]' local RESTORE_CURSOR='\[\033[u\]' local MOVE_CURSOR_RIGHTMOST='\[\033[500C\]' local MOVE_CURSOR_LEFTMOST='\[\033[500D\]' local MOVE_CURSOR_5_LEFT='\[\033[5D\]' local MOVE_CURSOR_1_DOWN='\[\033[1B\]' PS1="${TITLEBAR}\n\ ${SAVE_CURSOR}${MOVE_CURSOR_RIGHTMOST}${MOVE_CURSOR_5_LEFT}\ $(demula_battery_charge)${RESTORE_CURSOR}\ ${D_USER_COLOR}\u ${D_INTERMEDIATE_COLOR}\ at ${D_MACHINE_COLOR}\h ${D_INTERMEDIATE_COLOR}\ in ${D_DIR_COLOR}\w ${D_INTERMEDIATE_COLOR}\ $(mitsuhikos_lastcommandfailed)\ $(demula_vcprompt)\ $(is_vim_shell)\n\ ${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" PS2="${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" } # Runs prompt (this bypasses bash_it $PROMPT setting) PROMPT_COMMAND=prompt