summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2013-10-27 18:26:35 -0400
committerJune McEnroe <june@causal.agency>2013-10-27 18:26:35 -0400
commitd0b29aa8f4b825e4516bc87ac9fe67857eff44bd (patch)
treed65405ef9411c454d341381cefc52a12600926c6
parentAdd gvim alias to silence stderr (diff)
downloadsrc-d0b29aa8f4b825e4516bc87ac9fe67857eff44bd.tar.gz
src-d0b29aa8f4b825e4516bc87ac9fe67857eff44bd.zip
Add auto-title stuff to zsh
-rw-r--r--.zsh/title.zsh26
-rw-r--r--.zshrc6
2 files changed, 28 insertions, 4 deletions
diff --git a/.zsh/title.zsh b/.zsh/title.zsh
new file mode 100644
index 00000000..b0d7ad70
--- /dev/null
+++ b/.zsh/title.zsh
@@ -0,0 +1,26 @@
+function _title {
+  echo -en "\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 "$1"
+}
+
+function _title_precmd {
+  [ -z "$_title_custom" ] && _title zsh
+}
+
+typeset -ga preexec_functions
+typeset -ga precmd_functions
+preexec_functions+='_title_preexec'
+precmd_functions+='_title_precmd'
diff --git a/.zshrc b/.zshrc
index 5f93af54..ac96cd74 100644
--- a/.zshrc
+++ b/.zshrc
@@ -66,6 +66,8 @@ chruby ruby-2.0.0
 
 source ~/.zsh/gitprompt.zsh
 
+source ~/.zsh/title.zsh
+
 # Environment
 
 export EDITOR=vim
@@ -75,10 +77,6 @@ export PATH=$PATH:~/bin
 
 # Functions and aliases
 
-function title {
-  echo -en "\033]0;$1\a"
-}
-
 function game {
   xinit =$1 ${@:2} -- :1 vt6
 }