modularisation term_title

This commit is contained in:
Loic Nageleisen 2012-08-10 15:37:13 +02:00
parent d5cca2a992
commit 5cfd24a554
3 changed files with 30 additions and 18 deletions

View file

@ -32,35 +32,18 @@ __tpwd() {
__truncate_dir "$PWD" __truncate_dir "$PWD"
} }
__bash_prompt_command() {
local pwdmaxlen=25
local trunc_symbol="…"
PROMPT_PWD=$(__tpwd)
}
__set_bash_ps1() { __set_bash_ps1() {
case $TERM in
xterm*|rxvt*)
local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]'
;;
*)
local TITLEBAR=""
;;
esac
# load color vars # load color vars
source "$DOTFILES_BASH_DIR/ansi_colors" source "$DOTFILES_BASH_DIR/ansi_colors"
# colorized: # colorized:
PS1="${TITLEBAR} ${B}[${UC}\u@\h ${G}\${PROMPT_PWD}${B}]${UC}\\$ ${NONE}" PS1=" ${B}[${UC}\u@\h ${G}\$(__tpwd)${B}]${UC}\\$ ${NONE}"
# without colors: # without colors:
#PS1="${TITLEBAR}[\u@\h \${NEW_PWD}]\\$ " #PS1="${TITLEBAR}[\u@\h \${NEW_PWD}]\\$ "
# extra backslash in front of \$ to make bash colorize the prompt # extra backslash in front of \$ to make bash colorize the prompt
} }
PROMPT_COMMAND=__bash_prompt_command
__set_bash_ps1 __set_bash_ps1
unset __set_bash_ps1 unset __set_bash_ps1

View file

@ -2,6 +2,7 @@
source $DOTFILES_BASH_DIR/prompt source $DOTFILES_BASH_DIR/prompt
source $DOTFILES_BASH_DIR/history source $DOTFILES_BASH_DIR/history
source $DOTFILES_BASH_DIR/term_title
source $DOTFILES_BASH_DIR/completion source $DOTFILES_BASH_DIR/completion
# easy on spelling mistakes # easy on spelling mistakes

28
bash/term_title Normal file
View file

@ -0,0 +1,28 @@
# Tell the terminal about the working directory at each prompt.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"
fi
set_term_title() {
case $TERM in
xterm*|rxvt*)
local title="\033]2;$USER@${HOSTNAME%%.*}:${PWD/#$HOME/~}\a"
;;
*)
local title=""
;;
esac
printf "$title"
}
PROMPT_COMMAND="set_term_title; $PROMPT_COMMAND"
# vim: ft=sh