X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=.profile.d%2Fprompt.bashrc;h=07c9f9df6a27aff1a789b318713a07280b5aced7;hb=f88674d3152d00fa0c67a95d495cf341d1a495a4;hp=c21a0317ef15d81b4e6e9e499201f09d4dee7253;hpb=abf0b3e51d6136c7208c5854f2ebcbd09f8f5236;p=profile.git diff --git a/.profile.d/prompt.bashrc b/.profile.d/prompt.bashrc index c21a031..07c9f9d 100644 --- a/.profile.d/prompt.bashrc +++ b/.profile.d/prompt.bashrc @@ -4,21 +4,37 @@ # SSH_FORWARDED=$(get_remote_ip -n) -if [ ! -z "$SSH_FORWARDED" -a ! "$SSH_ORIGINAL_COMMAND" = "/usr/NX/bin/nxnode" ]; then - if [ ! "$SSH_FORWARDED" = "62.189.242.202" -a ! "$SSH_FORWARDED" = "62.189.241.202" ]; then +if [ ! -z "$SSH_FORWARDED" ]; then + if [ ! "$SSH_FORWARDED" = "62.189.242.202" -a ! "$SSH_FORWARDED" = "62.189.241.202" -a ! "$SSH_FORWARDED" = "193.128.72.68" -a ! "$SSH_FORWARDED" = "localhost" ]; then SSH_FORWARDED=" (from $SSH_FORWARDED)" else SSH_FORWARDED= fi -else - SSH_FORWARDED="" fi + +# Unscientific check for grid jobs. +case ${SSH_CLIENT##* } in + ""|22|2222);; + *) SSH_FORWARDED="$SSH_FORWARDED [grid]" +esac + +info="$HOSTNAME$SSH_FORWARDED" + +# Check for vim. +vimchild=" [vim]" if ps -o comm= -p $PPID 2>/dev/null | grep '^vim*$' &>/dev/null; then - VIMCHILD=" [vim]" + # Clear [vim] when exiting. + trap "echo -ne '\\033]0;$info\\033\\0134'" exit + info="$info$vimchild" +fi +if [ "${TERM##screen}" = "$TERM" ]; then + export PROMPT_COMMAND="echo -ne '\033]0;$info\033\0134\r\033[K'" else - VIMCHILD= + export PROMPT_COMMAND='echo -ne "\033k\033\0134"' +fi +unset blank info vimchild SSH_FORWARDED + +# Actual dtterm barfs on escape sequences. +if [ "$TERMINAL_EMULATOR" = "dtterm" ]; then + unset PROMPT_COMMAND fi -info="$HOSTNAME$SSH_FORWARDED$VIMCHILD" -blank=$(echo $info | sed 's/./ /g') -export PROMPT_COMMAND="echo -ne '\033]0;$info\007\r$blank\r'" -unset info blank SSH_FORWARDED VIMCHILD