source ~/.aliases [ -f ~/.fzf.bash ] && source ~/.fzf.bash # If not running interactively, don't do anything [[ $- != *i* ]] && return # History completion bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward' #Shorter history export HISTCONTROL=ignoredups # Mimic Zsh run-help ability bind '"\eh": "\C-a\eb\ed\C-y\e#man \C-y\C-m\C-p\C-p\C-a\C-d\C-e"' export DISPLAY=:0.0 # Define some colors first: Capitals denote bold red='\e[0;31m' RED='\e[1;31m' WHITE='\e[0;37m' green='\e[0;32m' GREEN='\e[1;32m' yellow='\e[0;33m' YELLOW='\e[1;33m' blue='\e[0;34m' BLUE='\e[1;34m' magenta='\e[0;35m' MAGENTA='\e[1;35m' cyan='\e[0;36m' CYAN='\e[1;36m' NC='\e[0m' # No Color # Taken from http://www.opinionatedprogrammer.com/2011/01/colorful-bash-prompt-reflecting-git-status/ function _git_prompt() { local git_status="`git status -unormal 2>&1`" if ! [[ "$git_status" =~ Not\ a\ git\ repo ]]; then if [[ "$git_status" =~ nothing\ to\ commit ]]; then local ansi=$WHITE elif [[ "$git_status" =~ nothing\ added\ to\ commit\ but\ untracked\ files\ present ]]; then local ansi=$RED else local ansi=$YELLOW fi if [[ "$git_status" =~ On\ branch\ ([^[:space:]]+) ]]; then branch=${BASH_REMATCH[1]} #test "$branch" != master || branch=' ' else # Detached HEAD. (branch=HEAD is a faster alternative.) branch="(`git describe --all --contains --abbrev=4 HEAD 2> /dev/null || echo HEAD`)" fi echo -n '[\['"$ansi"'\]'"$branch"'\[\e[0m\]]' fi } function report_status() { RET_CODE=$? if [[ $RET_CODE -ne 0 ]] ; then echo -ne "[\[$RED\]$RET_CODE\[$NC\]]" fi } export _PS1="\[$NC\]\u (\W) " export PS2="\[$NC\]> " export PROMPT_COMMAND='_status=$(report_status);export PS1="${_PS1}$(_git_prompt)${_status} \$ ";unset _status;'