No permitir que Windows se renombre en tmux

4

He instalado tmux en un sistema OS X con zsh proporcionado por oh-my-zsh.

Usualmente uso un buen número de ventanas tmux para un montón de sesiones ssh, y me gusta mantener estas ventanas con el nombre de los hosts con los que estoy trabajando para que me resulte mucho más fácil descubrir qué ventana contiene qué.

Intenté agregar líneas de configuración como set-window-option -g automatic-rename offy set-option -g allow-rename offa mi ~ / .tmux.conf, sin embargo, si inicio una nueva sesión de tmux, cambie el nombre de la ventana y cden un directorio diferente tmux felizmente cambia el nombre de la ventana nuevamente para que coincida con el directorio de trabajo actual.

¿Cómo puedo nombrar ventanas sin que me cambien automáticamente?

Ryan Morrison
fuente
1
Debería leer "set- window -option -g allow-rename off", ¿verdad?
mpy

Respuestas:

7

Tuve un problema similar, pero con byobu-screeny después de algunas investigaciones, resultó que es la función oh-my-zsh .

Esto se ha discutido en la página de problemas de oh-my-zsh

En resumen, tuve que descomentar la DISABLE_AUTO_TITLE="true"línea en mi ~/.zshrcarchivo.

Según la versión de oh-my-zsh , es posible que deba agregar export DISABLE_AUTO_TITLE="true".

Pravin
fuente
1

Soy consciente de que esto no responde a su pregunta directa, pero puede ayudarlo a obtener el comportamiento deseado, y es demasiado largo para un comentario

En mi humilde opinión, debería curar la causa y no tratar de aliviar los síntomas ... lo que quiero decir es lo siguiente: en algún lugar de su configuración de shell (probablemente en uno de sus complementos activados oh-my-zsh) el título de la ventana se establece cada vez cambia el directorio actual. Lo más probable en la función precmd()o chpwd(). Así que primero verifique la salida de

$ which precmd
$ which chpwd

e intente encontrar la fuente en sus archivos zsh rc.

Una solución alternativa puede ser anular estas funciones (con la opción tmux automatic-rename desactivada y allow-rename on):

$ chpwd() { }
$ precmd() {
    if [[ "$TERM" = "screen" ]] && [[ -n "$TMUX" ]]; then
       print -Pn "\033k%m\033\\"
    fi
  }

Observaciones:

  • Utilicé el cheque si estás en una sesión tmux de esa respuesta
  • El título de la ventana se cambia mediante la impresión de una secuencia de escape cada vez que se vuelve a dibujar el mensaje
  • print -Pusa las mismas expansiones que en la solicitud (consulte EXPANSIÓN DE SECUENCIAS DE PROMPT en man zshmisc), por lo que se %mexpande al nombre de host hasta el primer punto.

Asegúrese de insertar este código en su ~/.zshrcarchivo después de cargar oh-my-zsh.

Un último punto, que me viene a la mente: el nombre de host solo puede establecerlo el host en el que inicias sesión. Así que asegúrese de que la configuración de todas esas máquinas sea

mpy
fuente