¿Por qué ssh no vuelve el título del terminal?

Como ya sabrá, cuando transfiere ssh a un server desde un terminal X (rxvt, gnome-terminal …), ssh cambia el título de la window para reflejar user @ host, pero no lo vuelve a cambiar.

Hay muchos consejos sobre cómo solucionar esto en Internets. No estoy pidiendo otro 1 .

Lo que estoy buscando es una explicación de por qué es así. Entonces puedo aprender a vivir con eso. ¿Por qué ssh no restablece el título?

Para ponerlo más en forma FITD: si vim puede hacerlo, ¿por qué ssh no puede?

1 … a less que la explicación sea que el problema es causado solo por una mala configuration de ssh, en cuyo caso doy la bienvenida a la forma de solucionarlo.

El título de la window en un terminal se establece mediante caracteres de control embeddeds en la salida de lo que se está ejecutando en el terminal. ssh no tiene en count esto, ya que simplemente pasa los caracteres que se generan en el extremo remoto a la salida estándar del cliente. Por lo general, la mayoría de los sistemas UNIX / Linux que "establecen el título de la window" hacen esto incorporando los caracteres de control en la variable PS1 del intérprete de /etc/bash_profile en el /etc/bash_profile o en el $HOME/.bashrc o $HOME/.bash_profile pnetworkingeterminado del usuario $HOME/.bash_profile (o cualquier file de configuration que use el shell elegido). Esta página describe cómo hacerlo en varios caparazones diferentes.

Entonces, con eso explicado, entonces inicia session en una máquina remota con estas cosas configuradas, el título de la window se establece, y la razón por la cual el título de la window no "cambia de nuevo" es probablemente porque su máquina local no tiene estos Controle los caracteres embeddeds en el indicador local para volver a establecer el título de la window. En otras palabras, una vez que el título de la window ha sido establecido por estos caracteres de control, no se desarman automáticamente. En realidad, debe mostrar nuevamente los caracteres de control para cambiarlo, generalmente incluyéndolos en su variable de request local.

El VIM que se ejecuta en la máquina local puede consultar el título de la window desde el server X (al hacer reference al ID de la window en $WINDOWID ) y save el título para restaurarlo cuando se cierre. Esto se puede controlar con el title opciones de VIM y la titlestring (ver :help 'title' ). El cliente ssh simplemente no parece hacer esto, de nuevo probablemente porque ssh no gestiona directamente el título de la window, simplemente emite los caracteres desde el shell remoto.

editar: Gracias a Stephane Chazelas en los comentarios de las correcciones sobre el comportamiento del título de VIM.