]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
zsh/rc: Fix window_precmd() when running zsh as root through ssh.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index a7d81ca6d1bc58dcfa04c818dae2df68981a5159..ef32525f23f4c19cb147d40a9a70006c1ed6e340 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -38,26 +38,12 @@ setopt ignoreeof
 bindkey -v
 
 # Also use jj to exit insert mode.
-bindkey -M viins 'jj' vi-cmd-mode
+bindkey 'jj' vi-cmd-mode
 
 # I don't need the arrow keys, I use ^N and ^P for this (see below).
-bindkey -M viins -r '^[OA'
-bindkey -M viins -r '^[OB'
-bindkey -M viins -r '^[OC'
-bindkey -M viins -r '^[OD'
-bindkey -M viins -r '^[[A'
-bindkey -M viins -r '^[[B'
-bindkey -M viins -r '^[[C'
-bindkey -M viins -r '^[[D'
+bindkey -r '^[OA' '^[OB' '^[OC' '^[OD' '^[[A' '^[[B' '^[[C' '^[[D'
 # Also not in Vi mode.
-bindkey -M vicmd -r '^[OA'
-bindkey -M vicmd -r '^[OB'
-bindkey -M vicmd -r '^[OC'
-bindkey -M vicmd -r '^[OD'
-bindkey -M vicmd -r '^[[A'
-bindkey -M vicmd -r '^[[B'
-bindkey -M vicmd -r '^[[C'
-bindkey -M vicmd -r '^[[D'
+bindkey -a -r '^[OA' '^[OB' '^[OC' '^[OD' '^[[A' '^[[B' '^[[C' '^[[D'
 
 
 # FUNCTION SETTINGS
@@ -340,13 +326,13 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then
         fi
 
         # Prepend prefixes like in window_preexec().
+        if [[ -n $window_root ]]; then
+            name="!$name"
+        fi
         if [[ -n $SSH_CONNECTION ]]; then
-            window_title "@$name"
-        elif [[ -n $window_root ]]; then
-            window_title "!$name"
-        else
-            window_title $name
+            name="@$name"
         fi
+        window_title $name
 
         # Just reset the name, so no screen reset necessary for the moment.
         window_reset=
@@ -361,6 +347,9 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then
         window_title() {
             print -n "\e]2;$1\e\\"
         }
+    else
+        # Fallback if another TERM is used.
+        window_title() { }
     fi
 
     # Add the preexec() and precmd() hooks.