These now check for the presence of the required function instead of checking for the battery file in the enabled directory.
130 lines
3.4 KiB
Bash
130 lines
3.4 KiB
Bash
#!/usr/bin/env 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/
|
|
# - Bash_it modern theme
|
|
#
|
|
# Screenshot: http://goo.gl/VCmX5
|
|
# by Jesus de Mula <jesus@demula.name>
|
|
|
|
# For the real Monokai colors you should add these to your .XDefaults or
|
|
# terminal configuration:
|
|
#! ----------------------------------------------------------- TERMINAL COLORS
|
|
#! monokai - http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/
|
|
#*background: #272822
|
|
#*foreground: #E2DA6E
|
|
#*color0: black
|
|
#! mild red
|
|
#*color1: #CD0000
|
|
#! light green
|
|
#*color2: #A5E02D
|
|
#! orange (yellow)
|
|
#*color3: #FB951F
|
|
#! "dark" blue
|
|
#*color4: #076BCC
|
|
#! hot pink
|
|
#*color5: #F6266C
|
|
#! cyan
|
|
#*color6: #64D9ED
|
|
#! gray
|
|
#*color7: #E5E5E5
|
|
|
|
# ----------------------------------------------------------------- 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
|
|
}
|
|
|
|
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
|
|
demula_vcprompt() {
|
|
if [ ! -z "$VCPROMPT_EXECUTABLE" ];
|
|
then
|
|
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}"
|
|
$VCPROMPT_EXECUTABLE -f "$D_VCPROMPT_FORMAT"
|
|
fi
|
|
}
|
|
|
|
# checks if the plugin is installed before calling battery_charge
|
|
safe_battery_charge() {
|
|
if command_exists battery_charge ;
|
|
then
|
|
battery_charge
|
|
fi
|
|
}
|
|
|
|
# -------------------------------------------------------------- PROMPT OUTPUT
|
|
prompt() {
|
|
local LAST_COMMAND_FAILED=$(mitsuhikos_lastcommandfailed)
|
|
local SAVE_CURSOR='\033[s'
|
|
local RESTORE_CURSOR='\033[u'
|
|
local MOVE_CURSOR_RIGHTMOST='\033[500C'
|
|
local MOVE_CURSOR_5_LEFT='\033[5D'
|
|
|
|
if [ $(uname) = "Linux" ];
|
|
then
|
|
PS1="${TITLEBAR}
|
|
${SAVE_CURSOR}${MOVE_CURSOR_RIGHTMOST}${MOVE_CURSOR_5_LEFT}\
|
|
$(safe_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}\
|
|
${LAST_COMMAND_FAILED}\
|
|
$(demula_vcprompt)\
|
|
$(is_vim_shell)
|
|
${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}"
|
|
else
|
|
PS1="${TITLEBAR}
|
|
${D_USER_COLOR}\u ${D_INTERMEDIATE_COLOR}\
|
|
at ${D_MACHINE_COLOR}\h ${D_INTERMEDIATE_COLOR}\
|
|
in ${D_DIR_COLOR}\w ${D_INTERMEDIATE_COLOR}\
|
|
${LAST_COMMAND_FAILED}\
|
|
$(demula_vcprompt)\
|
|
$(is_vim_shell)\
|
|
$(safe_battery_charge)
|
|
${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}"
|
|
fi
|
|
|
|
PS2="${D_INTERMEDIATE_COLOR}$ ${D_DEFAULT_COLOR}"
|
|
}
|
|
|
|
# Runs prompt (this bypasses bash_it $PROMPT setting)
|
|
safe_append_prompt_command prompt
|