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 |
JFSIII | 1b7c941 | 2011-06-17 19:45:21 -0400 | [diff] [blame] | 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*) |
JFSIII | 1b7c941 | 2011-06-17 19:45:21 -0400 | [diff] [blame] | 51 | TITLEBAR="\033]0;\w\007" |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 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() { |
JFSIII | 1b7c941 | 2011-06-17 19:45:21 -0400 | [diff] [blame] | 87 | local SAVE_CURSOR='\033[s' |
| 88 | local RESTORE_CURSOR='\033[u' |
| 89 | local MOVE_CURSOR_RIGHTMOST='\033[500C' |
| 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 | f98a728 | 2011-03-07 01:11:20 +0100 | [diff] [blame] | 92 | if [ $(uname) = "Linux" ]; |
| 93 | then |
| 94 | PS1="${TITLEBAR} |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 95 | ${SAVE_CURSOR}${MOVE_CURSOR_RIGHTMOST}${MOVE_CURSOR_5_LEFT}\ |
Jesus de Mula Cano | 8cc74be | 2011-03-07 00:08:56 +0100 | [diff] [blame] | 96 | $(battery_charge)${RESTORE_CURSOR}\ |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 97 | ${D_USER_COLOR}\u ${D_INTERMEDIATE_COLOR}\ |
| 98 | at ${D_MACHINE_COLOR}\h ${D_INTERMEDIATE_COLOR}\ |
| 99 | in ${D_DIR_COLOR}\w ${D_INTERMEDIATE_COLOR}\ |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 100 | $(mitsuhikos_lastcommandfailed)\ |
| 101 | $(demula_vcprompt)\ |
Jesus de Mula Cano | 8cc74be | 2011-03-07 00:08:56 +0100 | [diff] [blame] | 102 | $(is_vim_shell) |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 103 | ${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" |
Jesus de Mula Cano | f98a728 | 2011-03-07 01:11:20 +0100 | [diff] [blame] | 104 | else |
| 105 | PS1="${TITLEBAR} |
| 106 | ${D_USER_COLOR}\u ${D_INTERMEDIATE_COLOR}\ |
| 107 | at ${D_MACHINE_COLOR}\h ${D_INTERMEDIATE_COLOR}\ |
| 108 | in ${D_DIR_COLOR}\w ${D_INTERMEDIATE_COLOR}\ |
| 109 | $(mitsuhikos_lastcommandfailed)\ |
| 110 | $(demula_vcprompt)\ |
| 111 | $(is_vim_shell)\ |
| 112 | $(battery_charge) |
| 113 | ${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" |
| 114 | fi |
| 115 | |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 116 | PS2="${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}" |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 117 | } |
| 118 | |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 119 | # Runs prompt (this bypasses bash_it $PROMPT setting) |
Jesus de Mula Cano | a38012f | 2011-03-04 11:44:56 +0100 | [diff] [blame] | 120 | PROMPT_COMMAND=prompt |
Jesus de Mula Cano | 9681bae | 2011-03-06 18:17:17 +0100 | [diff] [blame] | 121 | |