116 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| # If not running interactively, don't do anything
 | |
| case $- in
 | |
|     *i*) ;;
 | |
|       *) return;;
 | |
| esac
 | |
| 
 | |
| # don't put duplicate lines or lines starting with space in the history.
 | |
| # See bash(1) for more options
 | |
| HISTCONTROL=ignoreboth
 | |
| 
 | |
| # append to the history file, don't overwrite it
 | |
| shopt -s histappend
 | |
| 
 | |
| # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
 | |
| HISTSIZE=1000
 | |
| HISTFILESIZE=2000
 | |
| 
 | |
| # check the window size after each command and, if necessary,
 | |
| # update the values of LINES and COLUMNS.
 | |
| shopt -s checkwinsize
 | |
| 
 | |
| # make less more friendly for non-text input files, see lesspipe(1)
 | |
| [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
 | |
| 
 | |
| # enable color support of ls and also add handy aliases
 | |
| if [ -x /usr/bin/dircolors ]; then
 | |
|   test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
 | |
|   alias ls='ls --color=auto'
 | |
|   alias dir='dir --color=auto'
 | |
|   alias vdir='vdir --color=auto'
 | |
|   alias grep='grep --color=auto'
 | |
|   alias fgrep='fgrep --color=auto'
 | |
|   alias egrep='egrep --color=auto'
 | |
| fi
 | |
| 
 | |
| if [ -f ~/.bash_aliases ]; then
 | |
|     . ~/.bash_aliases
 | |
| fi
 | |
| 
 | |
| # enable programmable completion features (you don't need to enable
 | |
| # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
 | |
| # sources /etc/bash.bashrc).
 | |
| if ! shopt -oq posix; then
 | |
|   if [ -f /usr/share/bash-completion/bash_completion ]; then
 | |
|     . /usr/share/bash-completion/bash_completion
 | |
|   elif [ -f /etc/bash_completion ]; then
 | |
|     . /etc/bash_completion
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| # Enable vi mode
 | |
| set -o vi
 | |
| 
 | |
| function _prompt_first_line {
 | |
|   local exit_code=$?
 | |
|   if [ "$exit_code" = "0" ]; then
 | |
|     exit_code=
 | |
|   else
 | |
|     # If the last command failed, display its error code at the right
 | |
|     case $exit_code in
 | |
|       129) exit_code="SIGHUP"     ;;  # 128 + 1
 | |
|       130) exit_code="SIGINT"     ;;  # 128 + 2
 | |
|       131) exit_code="SIGQUIT"    ;;  # 128 + 3
 | |
|       132) exit_code="SIGILL"     ;;  # 128 + 4
 | |
|       133) exit_code="SIGTRAP"    ;;  # 128 + 5
 | |
|       134) exit_code="SIGABRT"    ;;  # 128 + 6
 | |
|       134) exit_code="SIGIOT"     ;;  # 128 + 6
 | |
|       135) exit_code="SIGBUS"     ;;  # 128 + 7
 | |
|       136) exit_code="SIGFPE"     ;;  # 128 + 8
 | |
|       137) exit_code="SIGKILL"    ;;  # 128 + 9
 | |
|       138) exit_code="SIGUSR1"    ;;  # 128 + 10
 | |
|       139) exit_code="SIGSEGV"    ;;  # 128 + 11
 | |
|       140) exit_code="SIGUSR2"    ;;  # 128 + 12
 | |
|       141) exit_code="SIGPIPE"    ;;  # 128 + 13
 | |
|       142) exit_code="SIGALRM"    ;;  # 128 + 14
 | |
|       143) exit_code="SIGTERM"    ;;  # 128 + 15
 | |
|       144) exit_code="SIGSTKFLT"  ;;  # 128 + 16
 | |
|       145) exit_code="SIGCHLD"    ;;  # 128 + 17
 | |
|       146) exit_code="SIGCONT"    ;;  # 128 + 18
 | |
|       147) exit_code="SIGSTOP"    ;;  # 128 + 19
 | |
|       148) exit_code="SIGTSTP"    ;;  # 128 + 20
 | |
|       149) exit_code="SIGTTIN"    ;;  # 128 + 21
 | |
|       150) exit_code="SIGTTOU"    ;;  # 128 + 22
 | |
|       151) exit_code="SIGURG"     ;;  # 128 + 23
 | |
|       152) exit_code="SIGXCPU"    ;;  # 128 + 24
 | |
|       153) exit_code="SIGXFSZ"    ;;  # 128 + 25
 | |
|       154) exit_code="SIGVTALRM"  ;;  # 128 + 26
 | |
|       155) exit_code="SIGPROF"    ;;  # 128 + 27
 | |
|       156) exit_code="SIGWINCH"   ;;  # 128 + 28
 | |
|       157) exit_code="SIGIO"      ;;  # 128 + 29
 | |
|       158) exit_code="SIGPWR"     ;;  # 128 + 30
 | |
|       159) exit_code="SIGSYS"     ;;  # 128 + 31
 | |
|     esac
 | |
|     exit_code=" \e[1m\e[31m$exit_code\e[0m"
 | |
|   fi
 | |
|   local time=$(date +%H:%M:%S)
 | |
|   local dir=$PWD
 | |
|   [[ "$dir" =~ ^"$HOME"(/|$) ]] && dir="~${dir#$HOME}"
 | |
|   # TODO: virtualenv
 | |
|   local grey="\e[38;5;244m"
 | |
|   local reset="\e[0m"
 | |
|   local blue="\e[38;5;37m"
 | |
|   echo -e "$grey$time$reset $blue$dir$reset$exit_code"
 | |
| }
 | |
| 
 | |
| PROMPT_COMMAND=_prompt_first_line
 | |
| 
 | |
| yellow="\001\e[38;5;3m\002"
 | |
| grey="\001\e[38;5;244m\002"
 | |
| reset="\001\e[0m\002"
 | |
| 
 | |
| PS1="$yellow\u$reset@$grey\h$reset "
 | |
| 
 | |
| # Setup environment variables
 | |
| export PATH=$HOME/.local/bin:$PATH
 |