30 lines
665 B
Bash
30 lines
665 B
Bash
function title {
|
|
emulate -L zsh
|
|
setopt prompt_subst
|
|
|
|
[[ "$EMACS" == *term* ]] && return
|
|
|
|
# if $2 is unset use $1 as default
|
|
# if it is set and empty, leave it as is
|
|
: ${2=$1}
|
|
|
|
case "$TERM" in
|
|
xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|kitty|wezterm|st*)
|
|
print -Pn "\e]2;${2:q}\a" # set window name
|
|
print -Pn "\e]1;${1:q}\a" # set tab name
|
|
;;
|
|
screen*|tmux*)
|
|
print -Pn "\ek${1:q}\e\\" # set screen hardstatus
|
|
;;
|
|
*)
|
|
# Try to use terminfo to set the title
|
|
# If the feature is available set title
|
|
if [[ -n "$terminfo[fsl]" ]] && [[ -n "$terminfo[tsl]" ]]; then
|
|
echoti tsl
|
|
print -Pn "$1"
|
|
echoti fsl
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|