]> 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 0618ee40a77548d6c99521a58cbe28cec2a752b5..1ae1ab87837cb7978fc3c604142118ee3f8b0923 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -135,7 +135,7 @@ fi
 # It works with screen and xterm. If screen is running in X11 (DISPLAY is set)
 # and stumpwm is used (it's tested if stumpish is available) then the window
 # title is also set in stumpwm using stumpish.
-if [[ $TERM == screen || $TERM == xterm* ]]; then
+if [[ $TERM == screen* || $TERM == xterm* ]]; then
     # Set to a non empty value to reset the window name in the next precmd()
     # call.
     window_reset=yes
@@ -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=
@@ -197,7 +215,7 @@ if [[ $TERM == screen || $TERM == xterm* ]]; then
 
     # Sets the window title. Works with screen and xterm.
     window_title() {
-        if [[ $TERM == screen ]]; then
+        if [[ $TERM == screen* ]]; then
             print -n "\ek$1\e\\"
 
             # Update window name in stumpwm if running screen in X11 and when