94 lines
2.6 KiB
Bash
94 lines
2.6 KiB
Bash
#!/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
|
|
|