X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=94d7fe37208874c0b79a2cafb23414ce24f41568;hb=81fe12757189bc144a22271f5bc669dd98ea2c37;hp=1a30e83094e3b79c399731437295dcabe49d36da;hpb=0388e4464474e155fd41d18266813d9ac5795cac;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index 1a30e83..94d7fe3 100644 --- a/zsh/rc +++ b/zsh/rc @@ -245,6 +245,9 @@ unset red blue green yellow default # screen is running on the remote machine instead of @screen @:hostname # (hostname replaced by the machine's hostname) is displayed. This only works # if the .zshrc on the server also uses this command. +# +# screen* is necessary as `screen` uses screen.linux for example for a linux +# console. if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then # Is set to a non empty value to reset the window name in the next # precmd() call. @@ -532,18 +535,16 @@ source_config ~/.zsh host rc ${$(hostname)//.*/} # RUN COMMANDS # If not already in screen reattach to a running session or create a new one. -# -# screen* is necessary as `screen` uses screen.linux for example for a linux -# console which would otherwise cause an infinite loop. -if [[ $TERM != screen* && $TERM != 'dumb' ]]; then +# This also starts screen one a remote server when connecting through ssh. +if [[ $TERM != dumb && -z $STY ]]; then # Get running detached sessions. session=$(screen -list | grep 'Detached' | awk '{ print $1; exit }') # Create a new session if none is running. if [[ -z $session ]]; then - screen + exec screen # Reattach to a running session. else - screen -r $session + exec screen -r $session fi fi