]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
zsh: Display @ in window name when running ssh.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index f936b91ad2144408044479d5b12334a355a4faff..1ae1ab87837cb7978fc3c604142118ee3f8b0923 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -148,10 +148,13 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
     window_preexec() {
         # Get the program name with its arguments.
         local program_name=$1
+
         # When sudo is used use real program name instead, but with an
         # exclamation mark at the beginning.
+        local program_sudo=
         if [[ $program_name == sudo* ]]; then
-            program_name=!${program_name#sudo }
+            program_name=${program_name#sudo }
+            program_sudo=yes
         fi
         # Remove all arguments from the program name.
         program_name=${program_name%% *}
@@ -177,6 +180,17 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
                 ;;
         esac
 
+        # Add an exclamation mark at the beginning if running with sudo.
+        if [[ $program_sudo == yes ]]; then
+            program_sudo=!$program_sudo
+        fi
+
+        # Add an at mark at the beginning if running ssh on a different
+        # computer.
+        if [[ -n $SSH_CONNECTION ]]; then
+            program_name="@$program_name"
+        fi
+
         # Set the window name to the currently running program.
         window_title "$program_name"
 
@@ -189,7 +203,11 @@ if [[ $TERM == screen* || $TERM == xterm* ]]; then
         [[ -z $window_reset ]] && return
 
         # Reset the window name to 'zsh'.
-        window_title "zsh"
+        if [[ -n $SSH_CONNECTION ]]; then
+            window_title "@zsh"
+        else
+            window_title "zsh"
+        fi
 
         # Just reset the name, so no screen reset necessary for the moment.
         window_reset=