]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
zsh: Expand aliases in window names correctly with sudo.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index 0618ee40a77548d6c99521a58cbe28cec2a752b5..736fbcd4f82c4eeb4951cd1cd54dd5cded315a91 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,11 @@ 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
+
         # Set the window name to the currently running program.
         window_title "$program_name"
 
@@ -197,7 +205,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