summaryrefslogtreecommitdiff
path: root/zsh/title.zsh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--zsh/title.zsh30
1 files changed, 30 insertions, 0 deletions
diff --git a/zsh/title.zsh b/zsh/title.zsh
new file mode 100644
index 0000000..911d53a
--- /dev/null
+++ b/zsh/title.zsh
@@ -0,0 +1,30 @@
+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
+}
+