blob: a0f35bf680369b1312a2844a6e598aab58e26943 [file] [log] [blame]
#!/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/
# - Docs of Bash - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html
# ----------------------------------------------------------------- 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
}
demula_battery_charge() {
if [ ! -z "$(battery_charge)" ]
then
battery_charge
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
# https://github.com/xvzf/vcprompt
demula_vcprompt() {
local D_VCPROMPT_EXECUTABLE=~/.vcprompt/bin/vcprompt
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}"
local D_VCPROMPT_OUTPUT=$($D_VCPROMPT_EXECUTABLE -f "$D_VCPROMPT_FORMAT")
echo $D_VCPROMPT_OUTPUT
}
# -------------------------------------------------------------- PROMPT OUTPUT
prompt() {
local SAVE_CURSOR='\[\033[s\]'
local RESTORE_CURSOR='\[\033[u\]'
local MOVE_CURSOR_RIGHTMOST='\[\033[500C\]'
local MOVE_CURSOR_LEFTMOST='\[\033[500D\]'
local MOVE_CURSOR_5_LEFT='\[\033[5D\]'
local MOVE_CURSOR_1_DOWN='\[\033[1B\]'
PS1="${TITLEBAR}\n\
${SAVE_CURSOR}${MOVE_CURSOR_RIGHTMOST}${MOVE_CURSOR_5_LEFT}\
$(demula_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)\n\
${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}"
PS2="${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}"
}
# Runs prompt (this bypasses bash_it $PROMPT setting)
PROMPT_COMMAND=prompt