Заставить LocalCommand устанавливать заголовок окна экрана только при интерактивном использовании?

Заставить LocalCommand устанавливать заголовок окна экрана только при интерактивном использовании?

Настраивать

Я запускаю screen на локальной машине и использую разные окна screen для подключения к разным хостам. Было бы неплохо автоматически менять имена окон на имена хостов во время процесса ssh.

Подходы

Я попробовал разные варианты двух подходов, представленных ниже:

1) Использование LocalComandв конфигурационном файле ssh:

Host *
PermitLocalCommand yes
LocalCommand '[ "${TERM:0:6}" == "screen" ] && printf "\ek@%h\e\\"

2) Создание пользовательской функции bash:

# function to set screen name based on host and reset on exit
function ssh() {
  echo -e '\033k'@$1'\033\\'
  /usr/bin/env ssh -Y "$@"
  echo -e '\033k'local'\033\\'
}

Проблема

Оба эти подхода работают, но они также, по-видимому, мешают таким вещам, как автодополнение:

$ scp user@host:~/.s<tab>
...o^[\\\\   ...cal^[\\\\

Вопрос

Есть ли какое-то условие, которое можно было бы использовать (помимо проверки if $TERM == screen), которое позволило бы выполнить LocalCommand(или ssh()функцию) только при подключении к хосту, а не при использовании для автодополнения?

Связанный контент