mirror of
https://github.com/lloeki/dotfiles.git
synced 2025-12-06 07:24:39 +01:00
refactoring
This commit is contained in:
parent
53b18ca0db
commit
f699a87614
24 changed files with 67 additions and 57 deletions
84
bash_prompt
84
bash_prompt
|
|
@ -1,84 +0,0 @@
|
|||
|
||||
##################################################
|
||||
# The home directory (HOME) is replaced with a ~
|
||||
# The last pwdmaxlen characters of the PWD are displayed
|
||||
# Leading partial directory names are striped off
|
||||
# /home/me/stuff -> ~/stuff if USER=me
|
||||
# /usr/share/big_dir_name -> …/share/big_dir_name if pwdmaxlen=20
|
||||
##################################################
|
||||
bash_prompt_command() {
|
||||
# How many characters of the $PWD should be kept
|
||||
local pwdmaxlen=25
|
||||
# How to indicate that there has been dir truncation
|
||||
local trunc_symbol="…"
|
||||
|
||||
# get minimum length to not truncate a long name
|
||||
local dir=${PWD##*/} #'.' real name
|
||||
pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen ))
|
||||
|
||||
NEW_PWD=${PWD/#$HOME/\~} #gain some place with '~'
|
||||
local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen )) #get truncation point
|
||||
if [ ${pwdoffset} -gt "0" ] #truncation is needed
|
||||
then
|
||||
NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen} #truncate
|
||||
NEW_PWD=${trunc_symbol}/${NEW_PWD#*/} #add symbol
|
||||
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 UC=$W # user's color
|
||||
[ $UID -eq "0" ] && UC=$R # root's color
|
||||
|
||||
# colorized:
|
||||
PS1="${TITLEBAR} ${EMC}[${UC}\u${EMC}@${UC}\h ${EMB}\${NEW_PWD}${EMC}]${UC}\\$ ${NONE}"
|
||||
# without colors:
|
||||
#PS1="${TITLEBAR}[\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
|
||||
|
||||
# vim: set filetype=sh :
|
||||
Loading…
Add table
Add a link
Reference in a new issue