Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 1 | #!/bin/bash |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 2 | |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 3 | # Theme inspired on: |
| 4 | # - Ronacher's dotfiles (mitsuhikos) - http://github.com/mitsuhiko/dotfiles/tree/master/bash/ |
| 5 | # - Glenbot - http://theglenbot.com/custom-bash-shell-for-development/ |
| 6 | # - My extravagant zsh - http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ |
| 7 | # - Monokai colors - http://monokai.nl/blog/2006/07/15/textmate-color-theme/ |
Jesus de Mula Cano | 0127dc2 | 2011-03-06 18:49:08 +0100 | [diff] [blame] | 8 | # - Bash_it modern theme |
| 9 | # |
Jesus de Mula Cano | 23de53a | 2011-03-06 22:37:47 +0100 | [diff] [blame] | 10 | # Screenshot: http://goo.gl/VCmX5 |
Jesus de Mula Cano | 0127dc2 | 2011-03-06 18:49:08 +0100 | [diff] [blame] | 11 | # by Jesus de Mula <jesus@demula.name> |
| 12 | |
| 13 | # For the real Monokai colors you should add these to your .XDefaults or |
| 14 | # terminal configuration: |
| 15 | #! ----------------------------------------------------------- TERMINAL COLORS |
| 16 | #! monokai - http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/ |
| 17 | #*background: #272822 |
| 18 | #*foreground: #E2DA6E |
| 19 | #*color0: black |
| 20 | #! mild red |
| 21 | #*color1: #CD0000 |
| 22 | #! light green |
| 23 | #*color2: #A5E02D |
| 24 | #! orange (yellow) |
| 25 | #*color3: #FB951F |
| 26 | #! "dark" blue |
| 27 | #*color4: #076BCC |
| 28 | #! hot pink |
| 29 | #*color5: #F6266C |
| 30 | #! cyan |
| 31 | #*color6: #64D9ED |
| 32 | #! gray |
| 33 | #*color7: #E5E5E5 |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 34 | |
| 35 | # ----------------------------------------------------------------- COLOR CONF |
| 36 | D_DEFAULT_COLOR='\[${normal}\]' |
| 37 | D_INTERMEDIATE_COLOR='\[${white}\]' |
| 38 | D_USER_COLOR='\[${purple}\]' |
| 39 | D_SUPERUSER_COLOR='\[${red}\]' |
| 40 | D_MACHINE_COLOR='\[${cyan}\]' |
| 41 | D_DIR_COLOR='\[${green}\]' |
| 42 | D_SCM_COLOR='\[${yellow}\]' |
| 43 | D_BRANCH_COLOR='\[${yellow}\]' |
| 44 | D_CHANGES_COLOR='\[${white}\]' |
| 45 | D_CMDFAIL_COLOR='\[${red}\]' |
| 46 | D_VIMSHELL_COLOR='\[${cyan}\]' |
Jesus de Mula Cano | 0127dc2 | 2011-03-06 18:49:08 +0100 | [diff] [blame] | 47 | |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 48 | # ------------------------------------------------------------------ FUNCTIONS |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 49 | case $TERM in |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 50 | xterm*) |
| 51 | TITLEBAR="\[\033]0;\w\007\]" |
| 52 | ;; |
| 53 | *) |
| 54 | TITLEBAR="" |
| 55 | ;; |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 56 | esac |
| 57 | |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 58 | is_vim_shell() { |
Jesus de Mula Cano | 8cc74be | 2011-03-07 00:08:56 +0100 | [diff] [blame] | 59 | if [ ! -z "$VIMRUNTIME" ]; |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 60 | then |
| 61 | echo "${D_INTERMEDIATE_COLOR}on ${D_VIMSHELL_COLOR}\ |
| 62 | vim shell${D_DEFAULT_COLOR} " |
| 63 | fi |
| 64 | } |
| 65 | |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 66 | mitsuhikos_lastcommandfailed() { |
| 67 | code=$? |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 68 | if [ $code != 0 ]; |
| 69 | then |
| 70 | echo "${D_INTERMEDIATE_COLOR}exited ${D_CMDFAIL_COLOR}\ |
| 71 | $code ${D_DEFAULT_COLOR}" |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 72 | fi |
| 73 | } |
| 74 | |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 75 | # vcprompt for scm instead of bash_it default |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 76 | demula_vcprompt() { |
Jesus de Mula Cano | 8cc74be | 2011-03-07 00:08:56 +0100 | [diff] [blame] | 77 | if [ ! -z "$VCPROMPT_EXECUTABLE" ]; |
Jesus de Mula Cano | 0127dc2 | 2011-03-06 18:49:08 +0100 | [diff] [blame] | 78 | then |
| 79 | local D_VCPROMPT_FORMAT="on ${D_SCM_COLOR}%s${D_INTERMEDIATE_COLOR}:\ |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 80 | ${D_BRANCH_COLOR}%b %r ${D_CHANGES_COLOR}%m%u ${D_DEFAULT_COLOR}" |
Jesus de Mula Cano | 0127dc2 | 2011-03-06 18:49:08 +0100 | [diff] [blame] | 81 | $VCPROMPT_EXECUTABLE -f "$D_VCPROMPT_FORMAT" |
| 82 | fi |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 83 | } |
| 84 | |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 85 | # -------------------------------------------------------------- PROMPT OUTPUT |
| 86 | prompt() { |
| 87 | local SAVE_CURSOR='\[\033[s\]' |
| 88 | local RESTORE_CURSOR='\[\033[u\]' |
| 89 | local MOVE_CURSOR_RIGHTMOST='\[\033[500C\]' |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 90 | local MOVE_CURSOR_5_LEFT='\[\033[5D\]' |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 91 | |
Jesus de Mula Cano | 8cc74be | 2011-03-07 00:08:56 +0100 | [diff] [blame] | 92 | PS1="${TITLEBAR} |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 93 | ${SAVE_CURSOR}${MOVE_CURSOR_RIGHTMOST}${MOVE_CURSOR_5_LEFT}\ |
Jesus de Mula Cano | 8cc74be | 2011-03-07 00:08:56 +0100 | [diff] [blame] | 94 | $(battery_charge)${RESTORE_CURSOR}\ |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 95 | ${D_USER_COLOR}\u ${D_INTERMEDIATE_COLOR}\ |
| 96 | at ${D_MACHINE_COLOR}\h ${D_INTERMEDIATE_COLOR}\ |
| 97 | in ${D_DIR_COLOR}\w ${D_INTERMEDIATE_COLOR}\ |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 98 | $(mitsuhikos_lastcommandfailed)\ |
| 99 | $(demula_vcprompt)\ |
Jesus de Mula Cano | 8cc74be | 2011-03-07 00:08:56 +0100 | [diff] [blame] | 100 | $(is_vim_shell) |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 101 | ${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" |
| 102 | |
| 103 | PS2="${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 104 | } |
| 105 | |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 106 | # Runs prompt (this bypasses bash_it $PROMPT setting) |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 107 | PROMPT_COMMAND=prompt |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 108 | |