blob: 55be8246d9f1b34185a9c6dc0df23b1ebad518c2 [file] [log] [blame]
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +01001#!/bin/bash
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +01002
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +01003# 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 Cano0127dc22011-03-06 18:49:08 +01008# - Bash_it modern theme
9#
Jesus de Mula Cano23de53a2011-03-06 22:37:47 +010010# Screenshot: http://goo.gl/VCmX5
Jesus de Mula Cano0127dc22011-03-06 18:49:08 +010011# 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 Cano9681bae2011-03-06 18:17:17 +010034
35# ----------------------------------------------------------------- COLOR CONF
36D_DEFAULT_COLOR='\[${normal}\]'
37D_INTERMEDIATE_COLOR='\[${white}\]'
38D_USER_COLOR='\[${purple}\]'
39D_SUPERUSER_COLOR='\[${red}\]'
40D_MACHINE_COLOR='\[${cyan}\]'
41D_DIR_COLOR='\[${green}\]'
42D_SCM_COLOR='\[${yellow}\]'
43D_BRANCH_COLOR='\[${yellow}\]'
44D_CHANGES_COLOR='\[${white}\]'
45D_CMDFAIL_COLOR='\[${red}\]'
46D_VIMSHELL_COLOR='\[${cyan}\]'
Jesus de Mula Cano0127dc22011-03-06 18:49:08 +010047
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010048# ------------------------------------------------------------------ FUNCTIONS
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010049case $TERM in
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010050 xterm*)
51 TITLEBAR="\[\033]0;\w\007\]"
52 ;;
53 *)
54 TITLEBAR=""
55 ;;
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010056esac
57
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010058is_vim_shell() {
Jesus de Mula Cano8cc74be2011-03-07 00:08:56 +010059 if [ ! -z "$VIMRUNTIME" ];
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010060 then
61 echo "${D_INTERMEDIATE_COLOR}on ${D_VIMSHELL_COLOR}\
62vim shell${D_DEFAULT_COLOR} "
63 fi
64}
65
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010066mitsuhikos_lastcommandfailed() {
67 code=$?
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010068 if [ $code != 0 ];
69 then
70 echo "${D_INTERMEDIATE_COLOR}exited ${D_CMDFAIL_COLOR}\
71$code ${D_DEFAULT_COLOR}"
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010072 fi
73}
74
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010075# vcprompt for scm instead of bash_it default
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010076demula_vcprompt() {
Jesus de Mula Cano8cc74be2011-03-07 00:08:56 +010077 if [ ! -z "$VCPROMPT_EXECUTABLE" ];
Jesus de Mula Cano0127dc22011-03-06 18:49:08 +010078 then
79 local D_VCPROMPT_FORMAT="on ${D_SCM_COLOR}%s${D_INTERMEDIATE_COLOR}:\
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010080${D_BRANCH_COLOR}%b %r ${D_CHANGES_COLOR}%m%u ${D_DEFAULT_COLOR}"
Jesus de Mula Cano0127dc22011-03-06 18:49:08 +010081 $VCPROMPT_EXECUTABLE -f "$D_VCPROMPT_FORMAT"
82 fi
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010083}
84
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010085# -------------------------------------------------------------- PROMPT OUTPUT
86prompt() {
87 local SAVE_CURSOR='\[\033[s\]'
88 local RESTORE_CURSOR='\[\033[u\]'
89 local MOVE_CURSOR_RIGHTMOST='\[\033[500C\]'
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010090 local MOVE_CURSOR_5_LEFT='\[\033[5D\]'
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010091
Jesus de Mula Cano8cc74be2011-03-07 00:08:56 +010092 PS1="${TITLEBAR}
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010093${SAVE_CURSOR}${MOVE_CURSOR_RIGHTMOST}${MOVE_CURSOR_5_LEFT}\
Jesus de Mula Cano8cc74be2011-03-07 00:08:56 +010094$(battery_charge)${RESTORE_CURSOR}\
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +010095${D_USER_COLOR}\u ${D_INTERMEDIATE_COLOR}\
96at ${D_MACHINE_COLOR}\h ${D_INTERMEDIATE_COLOR}\
97in ${D_DIR_COLOR}\w ${D_INTERMEDIATE_COLOR}\
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +010098$(mitsuhikos_lastcommandfailed)\
99$(demula_vcprompt)\
Jesus de Mula Cano8cc74be2011-03-07 00:08:56 +0100100$(is_vim_shell)
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +0100101${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}"
102
103 PS2="${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}"
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +0100104}
105
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +0100106# Runs prompt (this bypasses bash_it $PROMPT setting)
Jesus de Mula Canoa38012f2011-03-04 11:44:56 +0100107PROMPT_COMMAND=prompt
Jesus de Mula Cano9681bae2011-03-06 18:17:17 +0100108