|  | #!/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/ | 
|  | #  - Bash_it modern theme | 
|  | # | 
|  | # Screenshot: http://goo.gl/VCmX5 | 
|  | # by Jesus de Mula <jesus@demula.name> | 
|  |  | 
|  | # For the real Monokai colors you should add these to your .XDefaults or | 
|  | # terminal configuration: | 
|  | #! ----------------------------------------------------------- TERMINAL COLORS | 
|  | #! monokai - http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/ | 
|  | #*background: #272822 | 
|  | #*foreground: #E2DA6E | 
|  | #*color0: black | 
|  | #! mild red | 
|  | #*color1: #CD0000 | 
|  | #! light green | 
|  | #*color2: #A5E02D | 
|  | #! orange (yellow) | 
|  | #*color3: #FB951F | 
|  | #! "dark" blue | 
|  | #*color4: #076BCC | 
|  | #! hot pink | 
|  | #*color5: #F6266C | 
|  | #! cyan | 
|  | #*color6: #64D9ED | 
|  | #! gray | 
|  | #*color7: #E5E5E5 | 
|  |  | 
|  | # ----------------------------------------------------------------- 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 | 
|  | } | 
|  |  | 
|  | 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 | 
|  | demula_vcprompt() { | 
|  | if [ ! -z "$VCPROMPT_EXECUTABLE" ]; | 
|  | then | 
|  | 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}" | 
|  | $VCPROMPT_EXECUTABLE -f "$D_VCPROMPT_FORMAT" | 
|  | fi | 
|  | } | 
|  |  | 
|  | # -------------------------------------------------------------- PROMPT OUTPUT | 
|  | prompt() { | 
|  | local SAVE_CURSOR='\[\033[s\]' | 
|  | local RESTORE_CURSOR='\[\033[u\]' | 
|  | local MOVE_CURSOR_RIGHTMOST='\[\033[500C\]' | 
|  | local MOVE_CURSOR_5_LEFT='\[\033[5D\]' | 
|  |  | 
|  | if [ $(uname) = "Linux" ]; | 
|  | then | 
|  | PS1="${TITLEBAR} | 
|  | ${SAVE_CURSOR}${MOVE_CURSOR_RIGHTMOST}${MOVE_CURSOR_5_LEFT}\ | 
|  | $(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) | 
|  | ${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" | 
|  | else | 
|  | PS1="${TITLEBAR} | 
|  | ${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)\ | 
|  | $(battery_charge) | 
|  | ${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" | 
|  | fi | 
|  |  | 
|  | PS2="${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" | 
|  | } | 
|  |  | 
|  | # Runs prompt (this bypasses bash_it $PROMPT setting) | 
|  | PROMPT_COMMAND=prompt | 
|  |  |