Solicitud personalizada de Tmux y ZSH: error con el nombre de la ventana

43

He personalizado mi indicador de ZSH con oh-my-zsh para que sea más legible y agregue información sobre git si estoy en un repositorio.

Ejemplo:
bob@inf [~/docs] %
bob@inf [~/src/nicest] master %(en un repositorio git)

Funciona bien pero tengo algunos errores tmuxy el nombre de la ventana. Todavía muestra un valor sin sentido y no puedo desactivarlo con automatic-rename off(simplemente no funciona, el nombre de la ventana cambia después de cada comando), para el primer ejemplo, tmux uso ~/docspara el nombre de la ventana.

No estoy seguro de cómo puedo solucionarlo, me gustaría mantener mi indicador zsh tal como está, si puedo hacer un cambio, pero me gustaría entender dónde está el problema.

Otra solución puede ser redefinir el comando settile(a partir de esta respuesta ), pero no estoy seguro de cómo hacerlo de la manera correcta.

Adrien Coquio
fuente

Respuestas:

76

Eché un vistazo a oh-my-zsh y encontré un probable sospechoso .

Cuando el valor de la variable de entorno TERM comienza con screen(que debería estar debajo de screen y tmux ), utiliza una secuencia de control de terminal de pantalla para establecer el nombre de la ventana en

  • (justo antes de mostrar un indicador de shell)
    la parte más a la izquierda de la ruta "tilde comprimida" del directorio de trabajo actual ( ..seguido de los últimos 13 caracteres o la ruta completa si tiene menos de 15 caracteres) y
  • (justo antes de iniciar un comando)
    la primera “palabra” de mando se rodará sobre-a-(sin contar ssh, sudoy algunos otros).

Parece que está funcionando de esta manera para usted (usted dijo que su ventana llamada cambió a ~/docscuando estaba en ese directorio). Si desea deshabilitar este cambio de nombre automático, puede deshabilitarlo por completo configurando el parámetro de shell DISABLE_AUTO_TITLE trueen su .zshrc:

DISABLE_AUTO_TITLE=true

Si solo configura esto en un shell interactivo, terminará con una cadena vacía para el nombre de la ventana actual, pero oh-my-zsh dejará de actualizar la ventana antes de cada solicitud y comando en esa instancia de shell (debe estar en su .zshrcafectar a todos los nuevos casos de concha).

Chris Johnsen
fuente
44
Esta es una respuesta tan perfecta. Preciso, informativo, conciso y al grano. Además, proporciona una solución además de responder la pregunta original ("entender dónde está el problema"). Es triste que quien se tomó el tiempo para preguntar no se molestó en marcar esto como la respuesta.
dmondark
Gracias gracias gracias gracias gracias gracias
Jezen Thomas
¿Dónde está un .zshrcarchivo para todos los usuarios?
andilabs
29

Sé que la respuesta anterior le da una solución, pero otra es simplemente agregar esta opción a su ~ / .tmux.conf

set-option -g allow-rename off
albertogg
fuente
Esta es una mejor solución ya que solo afecta a tmux.
Paul Oliver
Incluso con esta configuración, join-pane seguido de break-pane restablece el nombre de la ventana :(
djsadinoff
6

Me encontré con el mismo problema, que es el nombre de la ventana de tmux fue cambiado incluso configurando en .tmux.conf:

set-window-option -g automatic-rename off

Gracias la respuesta de Chris. El nombre de mi ventana tmux no cambió de nombre automáticamente después de cambiar:

set -g default-terminal "screen-256color"

a:

set -g default-terminal "xterm-256color"
rwxrwxrwx
fuente
0

Si desea deshabilitar el cambio de nombre automático solo para cierta ventana, puede usar:

 set -t [WINDOW_NUMBER] automatic-rename off

Deshabilite el cambio de nombre automático en una ventana específica en otra sesión:

 set -t [SESSION]:[WINDOW_NUMBER] automatic-rename off
Viktor Nonov
fuente