X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=customizing%2Ffred%2Fscripts%2Fssh.sh;h=39856a897e8713639e4c31dcb51d0635c7b169b9;hb=ab6bacb578744ce2a0132af78fbf5dc461cf00d3;hp=9bf10d17888de7775dbea40356a7e0713529304f;hpb=baf34d26f73b32deb1a89feb0fa2d1469e397405;p=feisty_meow.git diff --git a/customizing/fred/scripts/ssh.sh b/customizing/fred/scripts/ssh.sh index 9bf10d17..39856a89 100755 --- a/customizing/fred/scripts/ssh.sh +++ b/customizing/fred/scripts/ssh.sh @@ -4,6 +4,22 @@ source "$FEISTY_MEOW_GENERATED/custom/scripts/pick_credentials.sh" +# save the former terminal title if we're running in X with xterm. +prior_title= +if [ "$TERM" == "xterm" ]; then + prior_title="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')" +fi + +# force the TERM variable to a more generic version for other side. +# we don't want the remote side still thinking it's running xterm. +export TERM=linux + +#hmmm: it would be good to set an interrupt handler here and +# trap ctrl-c, since otherwise we are getting exited from and losing a chance +# to reset the terminal title. this actually happens a lot, since some X11 +# or other background process is left running and the ssh never actually quits, +# forcing one to hit ctrl-c. + if [ ! -z "$keyfile" ]; then \ssh -i "$keyfile" -X -C -c blowfish-cbc $* else @@ -15,7 +31,11 @@ if [ $? -eq 0 ]; then if [ -z "$(echo $* | grep git)" ]; then # re-run the terminal labeller after coming back from ssh. # we check the exit value because we don't want to update this for a failed connection. - bash $FEISTY_MEOW_SCRIPTS/tty/label_terminal_with_infos.sh + if [ -z "$prior_title" ]; then + bash $FEISTY_MEOW_SCRIPTS/tty/label_terminal_with_infos.sh + else + bash $FEISTY_MEOW_SCRIPTS/tty/set_term_title.sh "$prior_title" + fi fi fi