| #!/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 |
| |