mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-03-13 03:12:21 +01:00
Move the DISABLE_AUTO_TITLE check from title() to the preX hook functions that call it, to allow the title() function to be used directly by user or other callers.
53 lines
1.6 KiB
Bash
53 lines
1.6 KiB
Bash
# Set terminal window and tab/icon title
|
|
#
|
|
# usage: title short_tab_title [long_window_title]
|
|
#
|
|
# See: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1
|
|
# Fully supports screen, iterm, and probably most modern xterm and rxvt
|
|
# (In screen, only short_tab_title is used)
|
|
# Limited support for Apple Terminal (Terminal can't set window and tab separately)
|
|
function title {
|
|
if [[ $2 == "" ]]; then
|
|
2="$1"
|
|
fi
|
|
if [[ "$EMACS" == *term* ]]; then
|
|
return
|
|
fi
|
|
if [[ "$TERM" == screen* ]]; then
|
|
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
|
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ $TERM == ansi ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
|
print -Pn "\e]2;$2:q\a" #set window name
|
|
print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal)
|
|
fi
|
|
}
|
|
|
|
ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
|
|
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
|
|
|
|
# Called when you have a prompt
|
|
function omz_termsupport_precmd {
|
|
if [[ $DISABLE_AUTO_TITLE == true ]]; then
|
|
return
|
|
fi
|
|
|
|
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
|
|
}
|
|
|
|
# Called at the beginning of command execution
|
|
function omz_termsupport_preexec {
|
|
if [[ $DISABLE_AUTO_TITLE == true ]]; then
|
|
return
|
|
fi
|
|
|
|
emulate -L zsh
|
|
setopt extended_glob
|
|
|
|
# cmd name only, or if this is sudo or ssh, the next cmd
|
|
local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]:gs/%/%%}
|
|
local LINE="${2:gs/%/%%}"
|
|
|
|
title '$CMD' '%100>...>$LINE%<<'
|
|
}
|
|
|
|
precmd_functions+=(omz_termsupport_precmd)
|
|
preexec_functions+=(omz_termsupport_preexec)
|