summary refs log tree commit diff
path: root/.zsh/title.zsh
blob: d1ad4c25241c6df5e2bc4b16e91598af4cdbb2b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function _title {
  [[ "$TERM" =~ "xterm" ]] && print -Pn "\033]0;$@\a"
}

function title {
  if [[ -n "$1" ]]; then
    _title_custom=1
    _title $@
  else
    unset _title_custom
    _title_precmd
  fi
}

function _title_preexec {
  [[ -z "$_title_custom" ]] && _title "$_title_host%1~: $1"
}

unset _title_host
[[ -n "$SSH_CLIENT" ]] && _title_host='%m:'

function _title_precmd {
  [[ -z "$_title_custom" ]] && _title '$_title_host%1~'
}

typeset -ga preexec_functions
typeset -ga precmd_functions

preexec_functions+='_title_preexec'
precmd_functions+='_title_precmd'