summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2015-12-05 13:49:52 +0100
committerMarc Cornellà <marc.cornella@live.com>2015-12-05 13:49:52 +0100
commit3841115f541415f64c461d47285a9bf677b97e3f (patch)
tree7e6cc7edc1937fa7298a33e2bb6e3c0e82689b9d
parentc82f49e734973debfcab9dd7f1a76bfd42186880 (diff)
parent4e306887c248f3887a8e163c993f31df5a62487e (diff)
downloadzsh-3841115f541415f64c461d47285a9bf677b97e3f.tar.gz
zsh-3841115f541415f64c461d47285a9bf677b97e3f.tar.bz2
zsh-3841115f541415f64c461d47285a9bf677b97e3f.zip
Merge pull request #4654 from mcornella/termsupport-cleanup
Make code in lib/termsupport.zsh more readable
-rw-r--r--lib/termsupport.zsh41
1 files changed, 25 insertions, 16 deletions
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index f11a7dd18..7cf15b0a0 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -16,25 +16,35 @@ function title {
# if it is set and empty, leave it as is
: ${2=$1}
- if [[ "$TERM" == screen* ]]; then
- print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
- elif [[ "$TERM" == xterm* ]] || [[ "$TERM" == putty* ]] || [[ "$TERM" == rxvt* ]] || [[ "$TERM" == ansi ]] || [[ "$TERM" == cygwin ]] || [[ "$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
- fi
+ case "$TERM" in
+ cygwin|xterm*|putty*|rxvt*|ansi)
+ print -Pn "\e]2;$2:q\a" # set window name
+ print -Pn "\e]1;$1:q\a" # set tab name
+ ;;
+ screen*)
+ print -Pn "\ek$1:q\e\\" # set screen hardstatus
+ ;;
+ *)
+ if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
+ print -Pn "\e]2;$2:q\a" # set window name
+ print -Pn "\e]1;$1:q\a" # set tab name
+ fi
+ ;;
+ esac
}
ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
# Avoid duplication of directory in terminals with independent dir display
-if [[ $TERM_PROGRAM == Apple_Terminal ]]; then
+if [[ "$TERM_PROGRAM" == Apple_Terminal ]]; then
ZSH_THEME_TERM_TITLE_IDLE="%n@%m"
fi
# Runs before showing the prompt
function omz_termsupport_precmd {
emulate -L zsh
- if [[ $DISABLE_AUTO_TITLE == true ]]; then
+
+ if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
return
fi
@@ -44,12 +54,12 @@ function omz_termsupport_precmd {
# Runs before executing the command
function omz_termsupport_preexec {
emulate -L zsh
- if [[ $DISABLE_AUTO_TITLE == true ]]; then
+ setopt extended_glob
+
+ if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
return
fi
- setopt extended_glob
-
# cmd name only, or if this is sudo or ssh, the next cmd
local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}
local LINE="${2:gs/%/%%}"
@@ -66,19 +76,18 @@ preexec_functions+=(omz_termsupport_preexec)
# With extra fixes to handle multibyte chars and non-UTF-8 locales
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
-
# Emits the control sequence to notify Terminal.app of the cwd
+ # Identifies the directory using a file: URI scheme, including
+ # the host name to disambiguate local vs. remote paths.
function update_terminalapp_cwd() {
emulate -L zsh
- # Identify the directory using a "file:" scheme URL, including
- # the host name to disambiguate local vs. remote paths.
# Percent-encode the pathname.
local URL_PATH="$(omz_urlencode -P $PWD)"
[[ $? != 0 ]] && return 1
- local PWD_URL="file://$HOST$URL_PATH"
+
# Undocumented Terminal.app-specific control sequence
- printf '\e]7;%s\a' $PWD_URL
+ printf '\e]7;%s\a' "file://$HOST$URL_PATH"
}
# Use a precmd hook instead of a chpwd hook to avoid contaminating output