73 lines
2.3 KiB
Bash
73 lines
2.3 KiB
Bash
bash_prompt_command() {
|
|
# How many characters of the $PWD should be kept
|
|
local pwdmaxlen=$(( ${COLUMNS} - 11 ))
|
|
# Indicate that there has been dir truncation
|
|
local trunc_symbol="…"
|
|
local dir=${PWD##*/}
|
|
pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen ))
|
|
NEW_PWD=${PWD/#$HOME/\~}
|
|
NEW_BAR="$(printf ' %.0s' $(seq 1 $COLUMNS))"
|
|
local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen ))
|
|
if [ ${pwdoffset} -gt "0" ]
|
|
then
|
|
NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen}
|
|
NEW_PWD=${trunc_symbol}/${NEW_PWD#*/}
|
|
fi
|
|
}
|
|
|
|
bash_prompt() {
|
|
case $TERM in
|
|
xterm*|rxvt*)
|
|
local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]'
|
|
;;
|
|
*)
|
|
local TITLEBAR=""
|
|
;;
|
|
esac
|
|
local NONE="\[\033[0m\]" # unsets color to term's fg color
|
|
|
|
# regular colors
|
|
local K="\[\033[0;30m\]" # black
|
|
local R="\[\033[0;31m\]" # red
|
|
local G="\[\033[0;32m\]" # green
|
|
local Y="\[\033[0;33m\]" # yellow
|
|
local B="\[\033[0;34m\]" # blue
|
|
local M="\[\033[0;35m\]" # magenta
|
|
local C="\[\033[0;36m\]" # cyan
|
|
local W="\[\033[0;37m\]" # white
|
|
|
|
# emphasized (bolded) colors
|
|
local EMK="\[\033[1;30m\]"
|
|
local EMR="\[\033[1;31m\]"
|
|
local EMG="\[\033[1;32m\]"
|
|
local EMY="\[\033[1;33m\]"
|
|
local EMB="\[\033[1;34m\]"
|
|
local EMM="\[\033[1;35m\]"
|
|
local EMC="\[\033[1;36m\]"
|
|
local EMW="\[\033[1;37m\]"
|
|
|
|
# background colors
|
|
local BGK="\[\033[40m\]"
|
|
local BGR="\[\033[41m\]"
|
|
local BGG="\[\033[42m\]"
|
|
local BGY="\[\033[43m\]"
|
|
local BGB="\[\033[44m\]"
|
|
local BGM="\[\033[45m\]"
|
|
local BGC="\[\033[46m\]"
|
|
local BGW="\[\033[47m\]"
|
|
|
|
local BAR_ON="\[\033[4;44;37m\]"
|
|
local BAR_OFF="\[\033[1;0m\]"
|
|
local UC=$W # user's color
|
|
[ $UID -eq "0" ] && UC=$R # root's color
|
|
|
|
PS1="${TITLEBAR}${BAR_ON}\${NEW_BAR}${BAR_OFF}\r\n\t ${EMY}\${NEW_PWD}${EMK}]${UC}\n\\$ ${NONE}"
|
|
#PS1="${TITLEBAR}${BAR_ON}$(printf '_%.0s' $(seq 1 $(tput cols)))${BAR_OFF}\r\n ${NEW_PWD} :\n\$ "
|
|
#PS1='\[\033]0;\u - \w\007\]\[\033[44;37m\]'$(printf '_%.0s' $(seq 1 $(tput cols)))'\[\033[1;0m\]\r\n\t \w :\n\$ '
|
|
# without colors: PS1="[\u@\h \${NEW_PWD}]\\$ "
|
|
# extra backslash in front of \$ to make bash colorize the prompt
|
|
}
|
|
PROMPT_COMMAND=bash_prompt_command
|
|
bash_prompt
|
|
unset bash_prompt
|