# prompt segments for bash SEGMENT_DEFAULT_BG='default' SEGMENT_DEFAULT_FG='default' CURRENT_BG='NONE' lprompt_segment() { local bg fg fake_bg [[ -n $1 ]] && bg="$1" || bg='default' [[ -n $2 ]] && fg="$2" || fg='default' if [[ $CURRENT_BG == 'default' ]]; then fake_bg=$SEGMENT_DEFAULT_BG else fake_bg=$CURRENT_BG fi # evaluate color vars local color_vars="fg fake_bg" local bg_color_vars="bg" source "$DOTFILES_BASH_DIR/ansi_colors" if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then echo -n " \[$bg$fake_bg\]$SEGMENT_SEPARATOR\[$fg\] " else echo -n "\[$bg$fg\] " fi CURRENT_BG=$1 shift shift [[ -n "$*" ]] && echo -n "$*" } # End the prompt, closing any open segments prompt_end() { local $bg; local $fg; local $fake_bg; bg="default" fg="default" if [[ -n $CURRENT_BG ]]; then fake_bg=$CURRENT_BG fi # evaluate color vars local color_vars="fg fake_bg" local bg_color_vars="bg" source "$DOTFILES_BASH_DIR/ansi_colors" if [[ -n $CURRENT_BG ]]; then echo -n " \[$bg$fake_bg\]$SEGMENT_SEPARATOR" else echo -n "\[$bg\]" fi echo -n "\[$fg\]" CURRENT_BG='' } # vim: ft=sh: